Python 3.x 我应该堆叠、透视还是分组?
我仍在学习如何使用dataframe,但仍然无法做到这一点。。。我得到了这样一个数据帧:Python 3.x 我应该堆叠、透视还是分组?,python-3.x,pandas,pandas-groupby,pandas-datareader,Python 3.x,Pandas,Pandas Groupby,Pandas Datareader,我仍在学习如何使用dataframe,但仍然无法做到这一点。。。我得到了这样一个数据帧: A B C D1 D2 D3 1 2 3 5 6 7 我需要它看起来像: A B C DA D 1 2 3 D1 5 1 2 3 D2 6 1 2 3 D3 7 我知道我应该使用groupby之类的工具,但我仍然找不到好的文档。这是wide\u to\u long ydf=pd.wide_to_long(df,'D',i=['A','B','C'],j=
A B C D1 D2 D3
1 2 3 5 6 7
我需要它看起来像:
A B C DA D
1 2 3 D1 5
1 2 3 D2 6
1 2 3 D3 7
我知道我应该使用groupby之类的工具,但我仍然找不到好的文档。这是
wide\u to\u long
ydf=pd.wide_to_long(df,'D',i=['A','B','C'],j='DA').reset_index()
ydf
A B C DA D
0 1 2 3 1 5
1 1 2 3 2 6
2 1 2 3 3 7
使用melt
:
df.melt(['A','B','C'], var_name='DA', value_name='D')
输出:
A B C DA D
0 1 2 3 D1 5
1 1 2 3 D2 6
2 1 2 3 D3 7
A B C level_3 0
0 1 2 3 D1 5
1 1 2 3 D2 6
2 1 2 3 D3 7
使用
设置索引
和堆栈
df.set_index(['A','B','C']).stack().reset_index()
输出:
A B C DA D
0 1 2 3 D1 5
1 1 2 3 D2 6
2 1 2 3 D3 7
A B C level_3 0
0 1 2 3 D1 5
1 1 2 3 D2 6
2 1 2 3 D3 7
而且,您可以通过重命名列标题等来进行内务管理