当前位置: 首页 > 面试题库 >

pandsa,melt,未melt保存指数

蔺翰音
2023-03-14
问题内容

我有一张客户表(铜)和资产分配表(资产)

A = [[1,2],[3,4],[5,6]]
idx = ['coper1','coper2','coper3']
cols = ['asset1','asset2']

df = pd.DataFrame(A,index = idx, columns = cols)

所以我的数据看起来像

        asset1  asset2
coper1       1       2
coper2       3       4
coper3       5       6

我想通过线性优化来运行它们(我有约束-sum of all of asset_i <= amount_on_hand_i和类似sum of coper_j = price_j

因此我必须将2D矩阵转换为1D向量。融化哪个容易

df2 = pd.melt(df,value_vars=['asset1','asset2'])

但是现在,当我尝试解开它时,我得到了一个包含许多空白的6行阵列!

df2.pivot(columns = 'variable', values = 'value')


variable  asset1  asset2
0            1.0     NaN
1            3.0     NaN
2            5.0     NaN
3            NaN     2.0
4            NaN     4.0
5            NaN     6.0

有什么办法可以在使用melt时保留索引的“ coper”部分?


问题答案:

您需要通过reset_index和参数保留索引值id_vars

df2 = pd.melt(df.reset_index(), id_vars='index',value_vars=['asset1','asset2'])
print (df2)
    index variable  value
0  coper1   asset1      1
1  coper2   asset1      3
2  coper3   asset1      5
3  coper1   asset2      2
4  coper2   asset2      4
5  coper3   asset2      6

然后枢轴运行良好:

print(df2.pivot(index='index',columns = 'variable', values = 'value'))
variable  asset1  asset2
index                   
coper1         1       2
coper2         3       4
coper3         5       6

另一个可能的解决方案是stack

df2 = df.stack().reset_index()
df2.columns = list('abc')
print (df2)
        a       b  c
0  coper1  asset1  1
1  coper1  asset2  2
2  coper2  asset1  3
3  coper2  asset2  4
4  coper3  asset1  5
5  coper3  asset2  6

print(df2.pivot(index='a',columns = 'b', values = 'c'))
b       asset1  asset2
a                     
coper1       1       2
coper2       3       4
coper3       5       6


 类似资料:
  • Im使用firebase,由于某些原因,我的代码没有推送数据,并且Im没有在firebase URL中看到数据。我的密码是这样的 我得到警报“保存”,但我无法在firebase URL中找到数据。 此外,为Firebase中的每个url提供的API键有什么用途。 更新:这种情况发生在IE10中。在其他浏览器中,它工作得很好

  • 问题内容: 我目前正在尝试创建一个包含人名和ip的sqlite数据库,虽然我的代码在运行时似乎可以正常运行,但是在运行 下面的代码后在终端中运行时,数据却无法显示。它和都在〜/ Desktop / SQL中运行 我的计算机正在运行OSX 10.11.4,python 3.4和SQLite 3.14.1 我尝试将ips更改为main.ips并返回 问题答案: 您似乎没有提交到数据库。您需要在关闭连接

  • 问题是,即使我能够成功发送文档,其他用户也可以在线签名,但当我转到docusign配置文件时,发送的文档是不可见的。如果我不使用代表发送功能,文档连同状态,即out for signature或Signated将显示在我的配置文件中。这是怎么回事?谢谢

  • 由于某些原因,gridView中的值没有从包中保存。也没有向logcat输出任何内容。我是否正确地从gridview获取值?它充满了编辑文本,因此应该从中获取值 航海日志

  • 问题内容: 解释我的问题的最短方法是该代码: 但是,如果我尝试将指向Item的指针设置为i,代码将起作用: 但是我的函数接收对象,而不是指向它的指针。我可以得到它的类型(第一)。但是当我尝试指向它的指针时,我收到的是,而不是我的Object()的指针。 我可以指向该对象进行调用吗?或者可能是其他方式 问题答案: 切勿使用指向接口的指针。如果您需要一个指针来使用指针接收器调用方法,则必须将指针放入。

  • 问题内容: 我需要在ASP .Net应用程序中实现“未保存的更改”提示。如果用户修改了Web表单上的控件,并试图在保存之前导航离开,则将出现提示,警告他们尚未保存更改,并为他们提供取消并保留在当前页面上的选项。如果用户未触摸任何控件,则不应显示该提示。 理想情况下,我想用JavaScript实现此功能,但是在我开始滚动自己的代码之前,是否有任何现有的框架或推荐的设计模式来实现这一目标?理想情况下,