[英]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.