为了账号安全,请及时绑定邮箱和手机立即绑定

使用两列作为变量的数据框从长到宽

使用两列作为变量的数据框从长到宽

宝慕林4294392 2021-12-09 15:13:39
我想使用port1和port2作为感兴趣的变量将以下数据从长到宽重塑            port1  port2     w_retdate                              2006-01-01    0.0    0.0  0.0679912006-01-01    0.0    1.0  0.0332192006-01-01    1.0    0.0  0.0733242006-01-01    1.0    1.0  0.0397302006-01-02    0.0    0.0  0.0336162006-01-02    0.0    1.0  0.0224522006-01-02    1.0    0.0 -0.0248542006-01-02    1.0    1.0  0.020411我希望重新排列的数据看起来像这样:             0.00.0     0.01.0    1.00.0    1.01.0     date2006-01-01  0.067991   0.033219  0.073324  0.039730   2006-01-02  0.033616   0.022452 -0.024854  0.020411顶部的数字类似于port1和port2数字在一起。我不确定当使用正确的代码时会发生什么。我unstack()在制作port1和port2索引时尝试过并尝试date使用pivot_table,但没有成功实现此输出。任何想法都会很棒!
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

首先将列连接在一起,然后DataFrame.set_index使用参数append=True并最后通过Series.unstack以下方式重塑:


s = df['port1'].astype(str) + df['port2'].astype(str)

df = df.set_index(s, append=True)['w_ret'].unstack()

print (df)

              0.00.0    0.01.0    1.00.0    1.01.0

date                                              

2006-01-01  0.067991  0.033219  0.073324  0.039730

2006-01-02  0.033616  0.022452 -0.024854  0.020411


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号