假设我有一个看起来像这样的数据框 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这可以在不进行时髦加入的情况下完成吗?我能得到的最远的是使用普通的 groupbydf = df.groupby(['year']).count()但这只会给我这样的东西 locationyear 1908 1 11909 1 11912 2 2如何显示此数据框中的位置之一?
1 回答

子衿沉夜
TA贡献1828条经验 获得超3个赞
您可以使用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
添加回答
举报
0/150
提交
取消