嗨,我是python的新手,但是我有一个这样的数据框:
ID NAME NAME1 VALUE
1 Sarah orange 5
1 Roger apple 3
2 Amy pineapple 2
2 Kia pear 8
我想要这样:
ID NAME NAME1 VALUE NAME NAME1 VALUE
1 Sarah orange 5 Roger apple 3
2 Amy pineapple 2 Kia pear 8
我正在使用熊猫,但不确定如何实现并写入csv
。任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
将set_index
与cumcount
一起用于MultiIndex
,按unstack
整形,按sort_index
按第二级对MulitIndex
进行排序,最后按使用reset_index
进行列表理解:
df = df.set_index(['ID',df.groupby('ID').cumcount()]).unstack().sort_index(axis=1, level=1)
#python 3.6+
df.columns = [f'{a}_{b}' for a, b in df.columns]
#python bellow 3.6
#df.columns = ['{}_{}'.format(a,b) for a, b in df.columns]
df = df.reset_index()
print (df)
ID NAME_0 NAME1_0 VALUE_0 NAME_1 NAME1_1 VALUE_1
0 1 Sarah orange 5 Roger apple 3
1 2 Amy pineapple 2 Kia pear 8