首页 > 解决方案 > 选择多列并分组

问题描述

我有这个数据框

df_dataset=

CustomerId   Surname    Gender    Birth Date     City        Salary          Country
15634602     Hargrave   Female    1979-12-18     Marseile    101348.88       France
15647311     Hill       Female    1980-08-15     Barcelona   112542.58       Spain
15619304     Onio       Female    1979-11-01     Marseile    113931.57       France
15701354     Boni       Female    1982-08-24     Paris       93826.63        France
15737888     Mitchell   Female    1978-01-09     Madrid      79084.10        Spain

我想知道西班牙国家最高薪水的客户ID,姓氏

df_dataset[['CustomerId','Surname','Salary']].groupby['Country'=='Spain'].sort_values['Salary',ascending=False]

它给了我错误

标签: pythonpandas

解决方案


我认为您不能使用groupby['Country' == 'Spain']因为groupbyis 方法而不是索引对象,并且它期望列名作为其参数的一部分,而不是像'Country'=='Spain'. 如果您需要df_dataset按过滤Country,则应df_dataset[df_dataset['Country'] == '<country name>']在继续获得最高工资之前使用。此代码是否为您提供了预期的输出?

df_dataset[df_dataset['Country'] == 'Spain'].groupby(['Country'], sort=True)['Salary'].max()

推荐阅读