开发者社区> 问答> 正文

熊猫,融化,未融化保存指数

我有一个客户(coper)和资产配置(asset)表

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

我想通过一个线性优化来运行它们(我有一些约束条件,比如所有asset_i <= amount_on_hand_i的和和coper_j = price_j的和) 所以我要把这个二维矩阵变成一维向量。哪个容易熔化

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

有什么方法来保存'coper'的一部分,我的索引,而使用熔体? 问题来源StackOverflow 地址:/questions/59378503/how-to-reshape-more-than-one-date-column-to-be-index

展开
收起
kun坤 2019-12-30 10:20:40 1098 0
1 条回答
写回答
取消 提交回答
  • 您需要通过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
    

    另一个可能的解决方案与堆栈:

    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
    
    2019-12-30 10:20:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
十分钟上线-使用函数计算构建支付宝小程序服务 立即下载
用计算和数据去改变整个世界 立即下载
低代码开发师(初级)实战教程 立即下载