Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 我应该堆叠、透视还是分组?_Python 3.x_Pandas_Pandas Groupby_Pandas Datareader - Fatal编程技术网

Python 3.x 我应该堆叠、透视还是分组?

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=

我仍在学习如何使用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='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
而且,您可以通过重命名列标题等来进行内务管理