Pandas成群结队,但保持另一列

2024-05-19 20:11:57 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个像这样的数据帧

            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

如何显示此数据帧中的一个位置


Tags: 数据citynewlocationyeargroupbyfrancejersey
1条回答
网友
1楼 · 发布于 2024-05-19 20:11:57

可以使用^{}'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

相关问题 更多 >