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

Pandas:通过拆分列中的列和变量来重塑数据框

Pandas:通过拆分列中的列和变量来重塑数据框

MMMHUHU 2021-07-07 17:08:31
我有以下数据框,我试图融化:import numpy as npimport pandas as pddates = pd.date_range('1/1/2014', periods=4)df = pd.DataFrame(np.eye(4, ), index=dates, columns=['A_var1', 'A_var2', 'B_var1', 'B_var2'])print(df)             A_var1  A_var2  B_var1  B_var22014-01-01     1.0     0.0     0.0     0.02014-01-02     0.0     1.0     0.0     0.02014-01-03     0.0     0.0     1.0     0.02014-01-04     0.0     0.0     0.0     1.0我想获得以下内容:            type    var1    var2  2014-01-01   A      1.0     0.0    2014-01-01   B      0.0     0.0    2014-01-02   A      0.0     1.0     2014-01-02   B      0.0     0.0  2014-01-03   A      0.0     0.0    2014-01-03   B      1.0     0.02014-01-04   A      0.0     0.0     2014-01-04   B      0.0     1.0关于如何有效地做到这一点的任何想法?我知道我可以使用melt 函数,但我不能让它在那种情况下工作。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您可以stack在多索引列上使用。


In [304]: df.columns = df.columns.str.split('_', expand=True)


In [305]: df.stack(0).reset_index(1)

Out[305]:

           level_1  var1  var2

2014-01-01       A   1.0   0.0

2014-01-01       B   0.0   0.0

2014-01-02       A   0.0   1.0

2014-01-02       B   0.0   0.0

2014-01-03       A   0.0   0.0

2014-01-03       B   1.0   0.0

2014-01-04       A   0.0   0.0

2014-01-04       B   0.0   1.0



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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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