我在pandas DataFrame中有这样的数据:
我想将其转换为此(在pandas DataFrame中):
我尝试使用df.melt(),df.pivot()和df.T(),但它不适合我,因为他们改变了所有列...任何人都知道如何解决这个问题(使用除了pd之外的东西Dataframe也没关系,我的数据在csv文件中)?
答案 0 :(得分:4)
print (df)
name group weight
0 a e 60
1 t g 70
2 p d 80
3 f d 40
4 e e 50
5 l g 30
6 a d 20
print (df.pivot(index='name', columns='group', values='weight').fillna(''))
group d e g
name
a 20 60
e 50
f 40
l 30
p 80
t 70
答案 1 :(得分:1)
你可以用一行来做到这一点:
df.set_index(['name','group']).unstack()