本文介绍了在 pandas 中重塑数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
pandas 中是否有一种简单的方法来重塑以下数据框:
Is there a simple way in pandas to reshape the following data frame:
df = pd.DataFrame({'n':[1,1,2,2,1,1,2,2],
'l':['a','b','a','b','a','b','a','b'],
'v':[12,43,55,19,23,52,61,39],
'g':[0,0,0,0,1,1,1,1]
})
这种格式?:
g a1 b1 a2 b2
0 12 43 55 19
1 23 52 61 39
推荐答案
In [75]: df['ln'] = df['l'] + df['n'].astype(str)
In [76]: df.set_index(['g', 'ln'])['v'].unstack('ln')
Out[76]:
ln a1 a2 b1 b2
g
0 12 55 43 19
1 23 61 52 39
[2 rows x 4 columns]
如果您需要订购,则:
In [77]: df.set_index(['g', 'ln'])['v'].unstack('ln')[['a1', 'b1', 'a2', 'b2']]
Out[77]:
ln a1 b1 a2 b2
g
0 12 43 55 19
1 23 52 61 39
[2 rows x 4 columns]
这篇关于在 pandas 中重塑数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!