熊猫数据框-具有重组数据的新数据框

时间:2018-09-11 16:37:25

标签: python pandas dataframe pandas-groupby

我是Pandas的新手,正在尝试从现有的数据库创建一个新的数据框架。

我当前的数据框的格式为:

ID   Country    Status  
ABC  USA        Go
ABC  Columbia   Stop
ABC  Japan      Pause
ABC  Egypt      Go 
DEF  Canada     Go
DEF  Peru       Stop

我正在尝试合并数据以使其更紧凑。我的新格式是:

ID   Go          Stop      Pause
ABC  USA, Egypt  Columbia  Japan
DEF  Canada      Peru

基本上,可能的状态值将成为列,对于每个ID,这些列将填充具有该状态的国家/地区列表。我是 熊猫的新手,并正在努力解决这一问题的最佳方法-任何建议将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以使用pd.pivot_table

res = df.pivot_table(index='ID', columns='Status', values='Country', aggfunc=', '.join)

print(res)

Status          Go  Pause      Stop
ID                                 
ABC     USA, Egypt  Japan  Columbia
DEF         Canada   None      Peru

答案 1 :(得分:2)

如果您绝对必须这样做,那么这就是您的做法。

In [48]: df.groupby(['ID', 'Status'])['Country'].apply(','.join).unstack()
Out[48]:
Status         Go  Pause      Stop
ID
ABC     USA,Egypt  Japan  Columbia
DEF        Canada    NaN      Peru