繁体   English   中英

Python Pandas重新组织数据框

[英]Python Pandas reorganize dataframe

我有以下数据框:

Type  Label_1  Label_2  Label_3
A       1        5        3
B       3        2        1
C       2        1        2

我想将其格式化为如下所示:

Type  Label_type  Value
 A      Label_1    1
 A      Label_2    5
 A      Label_3    3
 B      Label_1    2
 B      Label_2    1

我怎样才能最有效地做到这一点? 我没有这样做...

我们可以使用pd.melt方法:

In [87]: pd.melt(df, 'Type')
Out[87]:
  Type variable  value
0    A  Label_1      1
1    B  Label_1      3
2    C  Label_1      2
3    A  Label_2      5
4    B  Label_2      2
5    C  Label_2      1
6    A  Label_3      3
7    B  Label_3      1
8    C  Label_3      2

如果顺序很重要:

In [89]: pd.melt(df, 'Type').sort_values(['Type', 'variable'])
Out[89]:
  Type variable  value
0    A  Label_1      1
3    A  Label_2      5
6    A  Label_3      3
1    B  Label_1      3
4    B  Label_2      2
7    B  Label_3      1
2    C  Label_1      2
5    C  Label_2      1
8    C  Label_3      2

使用stack

df=df.set_index('Type').stack().rename_axis(('Type','Label_type')).reset_index(name='Value')
print (df)
  Type Label_type  Value
0    A    Label_1      1
1    A    Label_2      5
2    A    Label_3      3
3    B    Label_1      3
4    B    Label_2      2
5    B    Label_3      1
6    C    Label_1      2
7    C    Label_2      1
8    C    Label_3      2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM