Pandas 不支持列表 melt var_name
list not supported for Pandas melt var_name
我有一个如下所示的数据框:
Country Person A B C
0 USA Bob 200 300 400
1 Canada Alice 100 200 300
我想融合数据以仅对 A、B 和 C 列进行透视,使其看起来像这样:
Country Person Label Count
0 USA Bob A 200
1 USA Bob B 300
2 USA Bob C 400
3 Canada Alice A 100
4 Canada Alice B 200
5 Canada Alice C 300
我尝试使用 melt,但它似乎不支持 var_name
的列表
import pandas as pd
df = pd.DataFrame(data=[['USA', 'Bob', 200, 300, 400],
['Canada', 'Alice', 100, 200, 300]],
columns=['Country', 'Person', 'A', 'B', 'C'])
df.melt(['Country', 'Person'], var_name=['A', 'B', 'C'], value_name='Count')
收到您的问题。
import pandas as pd
df = pd.DataFrame(data=[['USA', 'Bob', 200, 300, 400],
['Canada', 'Alice', 100, 200, 300]],
columns=['Country', 'Person', 'A', 'B', 'C'])
df1 = df.melt(['Country', 'Person'], var_name='Label', value_name='Count').sort_values(by=['Country','Person','Label'], ascending=[False,False,True])
print(df1)
我有一个如下所示的数据框:
Country Person A B C
0 USA Bob 200 300 400
1 Canada Alice 100 200 300
我想融合数据以仅对 A、B 和 C 列进行透视,使其看起来像这样:
Country Person Label Count
0 USA Bob A 200
1 USA Bob B 300
2 USA Bob C 400
3 Canada Alice A 100
4 Canada Alice B 200
5 Canada Alice C 300
我尝试使用 melt,但它似乎不支持 var_name
import pandas as pd
df = pd.DataFrame(data=[['USA', 'Bob', 200, 300, 400],
['Canada', 'Alice', 100, 200, 300]],
columns=['Country', 'Person', 'A', 'B', 'C'])
df.melt(['Country', 'Person'], var_name=['A', 'B', 'C'], value_name='Count')
收到您的问题。
import pandas as pd
df = pd.DataFrame(data=[['USA', 'Bob', 200, 300, 400],
['Canada', 'Alice', 100, 200, 300]],
columns=['Country', 'Person', 'A', 'B', 'C'])
df1 = df.melt(['Country', 'Person'], var_name='Label', value_name='Count').sort_values(by=['Country','Person','Label'], ascending=[False,False,True])
print(df1)