python-3.x - 显示每周交付量最多的国家/地区的问题
问题描述
我有一个名为 df1 的 pandas 数据框,包含三列:Country、Week_number 和 Total_deliveries
下面是使用的输出:df1.head(10)
如果我使用以下方法选择一些行,这就是输出:df1.take([1, 50, 180, 256, 147])
我希望能够在每个国家/地区每周获得最高的总交付量。
到目前为止,我尝试使用此代码:
df_most_deliveries = df1.groupby(['Week_number']).agg({'Total_deliveries': ['max']})
我在下面得到这个结果。它非常接近我想要的。我只需要添加国家名称。
然后当我添加国家列时:df_most_deliveries = df1.groupby(['Week_number', 'Country']).agg({'Total_deliveries': ['max']})
这是结果:
我的代码有问题。因为它列出了每周的所有国家。但我只想要一个按周数分组的总交付量最高的国家。
我如何更改代码以适应此要求?
解决方案
您正在寻找idxmax
:
df.loc[df.groupby('Week_number')['Total_deliveries'].idxmax()]
您也可以通过以下方式获得drop_duplicates
:
df.sort_values('Total_deliveries').drop_duplicates('Country', keep='last')
推荐阅读
- c - ubuntu 中的 C 程序中的分段错误(核心转储)
- php - 添加超过 16 年的日期在 php 中显示错误
- php - 将旧的 FuelPHP Amazon SES 包迁移到签名版本 4
- julia - Julia:如何通过位数组对“DataFrames.DataFrameColumns”进行行过滤?
- cypress - 强制 cypress 在 aria-hidden 输入上键入
- prestashop - 新产品 prestashop 1.7 中的类别
- flutter - Flutter 项目无法在 Chrome 上打开
- javascript - 有没有办法动态更新服务工作者“firebase-messaging-sw.js”中的变量?
- python - KeyError:“更正”,同时在 python 中使用 GingerIt 对 pandas 中的文本数据进行解析
- vuetify.js - Vuetify 按名称而不是索引访问扩展面板