簡體   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