Python 3.x 显示每周交货最多的国家/地区时出现问题

Python 3.x 显示每周交货最多的国家/地区时出现问题,python-3.x,pandas,dataframe,pandas-groupby,Python 3.x,Pandas,Dataframe,Pandas Groupby,我有一个名为df1的熊猫数据框架,有三列:国家、周数和总交付量 下面是使用以下命令的输出:df1.head(10) 如果我使用:df1.take([1,50,180,256,147])选择一些行,这就是输出 我希望每周能够在每个国家获得最高的总交付量 到目前为止,我尝试使用以下代码: df_most_deliveries = df1.groupby(['Week_number']).agg({'Total_deliveries': ['max']}) 我在下面得到这个结果。它非常接近我想要

我有一个名为df1的熊猫数据框架,有三列:国家、周数和总交付量

下面是使用以下命令的输出:
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()]
您也可以通过删除重复项来获得:

df.sort_values('Total_deliveries').drop_duplicates('Country', keep='last')