Python Pandas-使用Groupby在新列中列出数据列

Python Pandas-使用Groupby在新列中列出数据列,python,pandas,group-by,dataframe,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

我需要根据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
,但没有取得多少成功。谢谢你的帮助。

你可以

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

谢谢对于提供的示例,这是有效的。我的主要意图是跨多个列合并。例如,如果输入数据有['ID'、'City1'、'City2'…'CityN']列,您会有什么建议?这会略有不同,可能会添加一个准备步骤-您介意发布一个带有示例数据的新问题,以便我可以举例说明吗?不幸的是,我只能每90分钟发布一次。你能把你的解决方案贴在这里吗?谢谢