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

3

我需要根据分组结果添加新列。以以下数据框为例。

 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个回答

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接