Pandas - 使用Groupby列出新列中的数据列

时间:2015-12-14 17:02:22

标签: python pandas group-by dataframe

我需要根据groupby结果添加新列。以下面的数据框为例。

 ID      City      
 234x    Lima
 342x    Rica
 234x    Rio
 333x    NYC
 333x    SF

我一直在使用group_by获取计数:

df_GroupBy = pd.DataFrame({'count':df.groupby([ "ID"]).size()}).reset_index()

这给出了一个输出:

 ID       Count
234x       2
342x       1
333x       2

我现在要做的是获得此输出:

 ID       City     City_2
234x       Lima     Rio
342x       Rica      
333x       NYC      SF

我查看了Transformmap,但没有取得多大成功。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

你可以

cities = df.groupby('ID')['City'].apply(lambda x: pd.Series([city for city in x])).unstack()

         0    1
ID             
234x  Lima  Rio
333x   NYC   SF
342x  Rica  NaN