使用groupby后如何过滤对象?

时间:2019-06-07 16:54:55

标签: pandas pandas-groupby

我需要按职业和性别显示平均工作时间。因此,我有三列-职业,性别,每周工作时间。我已经使用条形图显示了它,但是我只需要显示男人即可。

df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data', header=None)
df.columns = ['age', 'workclass', 'fnlwgt', 'education', 'education-num', 'marital-status', 'occupation', 'relationship', 'race', 'sex',
          'capital-gain', 'capital-loss', 'hours-per-week', 'native-country', 'income']

df.groupby(['occupation','sex'])['hours-per-week'].mean().plot('bar')

Screenshot of the result

2 个答案:

答案 0 :(得分:0)

您可以使用以下方式按性别过滤数据框:

df[df.sex == ' Male']

不要忘记空格,因为您的数据在“男性”和“女性”之前都有一个空格。

答案 1 :(得分:0)

尝试:

df.query('sex == " Male"')\
  .groupby(['occupation','sex'])['hours-per-week'].mean().plot('bar')