我需要根据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
我查看了Transform
和map
,但没有取得多大成功。谢谢你的帮助。
答案 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