熊猫分组但保留另一列

假设我有一个看起来像这样的数据框


            date                                      location  year

 0    1908-09-17                           Fort Myer, Virginia  1908

 1    1909-09-07                       Juvisy-sur-Orge, France  1909

 2    1912-07-12                     Atlantic City, New Jersey  1912

 3    1913-08-06            Victoria, British Columbia, Canada  1912

我想使用 pandas groupby 函数来创建一个输出,该输出显示每年的事件总数,但同时保留将显示当年位置之一的位置列。任何一个工作。所以它看起来像这样:


       total  location

 year                

 1908     1    Fort Myer, Virginia

 1909     1    Juvisy-sur-Orge, France

 1912     2    Atlantic City, New Jersey

这可以在不进行时髦加入的情况下完成吗?我能得到的最远的是使用普通的 groupby


df = df.groupby(['year']).count()

但这只会给我这样的东西


               location

year                

1908     1         1

1909     1         1

1912     2         2

如何显示此数据框中的位置之一?


米脂
浏览 177回答 1
1回答

子衿沉夜

您可以使用groupby.agg和 用于'first'提取每个组中的第一个位置:res = df.groupby('year')['location'].agg(['first', 'count'])print(res)#                           first  count# year                                  # 1908        Fort Myer, Virginia      1# 1909    Juvisy-sur-Orge, France      1# 1912  Atlantic City, New Jersey      2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python