Pandas经过groupby聚合变为Series后,经过排序返回值最大的前2项(TOP2)

希望返回values对应为5和4的两项,及其对应的longitude和latitude值

df_agg1.groupby(['longitude','latitude'])['foot_mark'].sum()

运行以上返回:

longitude latitude
121.258340 37.493010 5
121.259149 37.496940 1
121.259180 37.502860 1
121.264030 37.487900 4
121.302646 37.481054 0
121.308775 37.482152 0
121.315780 37.474968 2
121.347799 37.467399 0
Name: foot_mark, dtype: int64

# 经过sort_values后取top2
df_agg1.groupby(['longitude','latitude'])['foot_mark'].sum().sort_values(ascending=False)[:2]

运行以上返回:

longitude latitude
121.26403 37.48790 1
121.25834 37.49301 1
Name: foot_mark, dtype: int64

如何返回其中的longitude和latitude值?

list(df_agg1.groupby(['longitude','latitude'])['foot_mark'].sum().sort_values(ascending=False)[:2].index)

运行以上返回:

[(121.26403, 37.4879), (121.25834, 37.49301)]

如果你的问题解决了,欢迎收藏+点赞+关注哦~

猜你喜欢

转载自blog.csdn.net/weixin_45281949/article/details/106157421
今日推荐