我有一张客户表(coper)和资产分配(资产)
A = [[1,2],[3,4],[5,6]]
idx = ['coper1','coper2','coper3']
cols = ['asset1','asset2']
df = pd.DataFrame(A,index = idx, columns = cols)
Run Code Online (Sandbox Code Playgroud)
所以我的数据看起来像
asset1 asset2
coper1 1 2
coper2 3 4
coper3 5 6
Run Code Online (Sandbox Code Playgroud)
我想通过一个线性优化运行它们(我有constraints- somtehing像sum of all of asset_i <= amount_on_hand_i和sum of coper_j = price_j)
所以我必须把这个2D矩阵变成一维矢量.融化容易
df2 = pd.melt(df,value_vars=['asset1','asset2'])
Run Code Online (Sandbox Code Playgroud)
但是现在,当我尝试解开它时,我得到一个带有大量空白的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
Run Code Online (Sandbox Code Playgroud)
有没有办法在使用熔化时保留索引的'coper'部分?
给定 Django 视图函数中的对象列表,例如
[['1.1.1.1', A], ['2.2.2.2', B]]
Run Code Online (Sandbox Code Playgroud)
如何在 html 模板中迭代它们以生成表格行
Column1 Column2
1.1.1.1 A
2.2.2.2 B
Run Code Online (Sandbox Code Playgroud)
如果您有不同的方法来做到这一点,通过以不同的方式创建数组/列表(没有对象,但例如元素列表,请随意分享)。
试图理解这种行为(为什么会发生;如果是有意的话,那么以这种方式完成它的动机是什么)
所以我创建了一个数据帧
np.random.seed(0)
df = pd.DataFrame(np.random.random((4,2)))
0 1
0 0.548814 0.715189
1 0.602763 0.544883
2 0.423655 0.645894
3 0.437587 0.891773
Run Code Online (Sandbox Code Playgroud)
我可以像这样引用列
df.columns = ['a','b']
df.a
0
0 0.548814
1 0.602763
2 0.423655
3 0.437587
Run Code Online (Sandbox Code Playgroud)
我甚至可以制作,我认为这是一个新专栏
df.third = pd.DataFrame(np.random.random((4,1)))
Run Code Online (Sandbox Code Playgroud)
但df仍然是
df
0 1
0 0.548814 0.715189
1 0.602763 0.544883
2 0.423655 0.645894
3 0.437587 0.891773
Run Code Online (Sandbox Code Playgroud)
然而,df.third也存在(但我在Spyder的变量查看器中看不到它)
df.third
0
0 0.118274
1 0.639921
2 0.143353
3 0.944669
Run Code Online (Sandbox Code Playgroud)
如果我想添加第三列,我必须执行以下操作
df['third'] = pd.DataFrame(np.random.random((4,1)))
a b third
0 0.548814 0.715189 0.568045 …Run Code Online (Sandbox Code Playgroud) 所以我到处寻找,我无法在任何地方找到答案.
所以我试图减去像[1,2,3] = -4这样的数字列表,因为1-2-3 = -4.
我试图使用切片列表来实现这一目标,但我无法弄清楚这一点.