我有以下数据框,我试图融化: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
添加回答
举报
0/150
提交
取消