我需要按职业和性别显示平均工作时间。因此,我有三列-职业,性别,每周工作时间。我已经使用条形图显示了它,但是我只需要显示男人即可。
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')
答案 0 :(得分:0)
您可以使用以下方式按性别过滤数据框:
df[df.sex == ' Male']
不要忘记空格,因为您的数据在“男性”和“女性”之前都有一个空格。
答案 1 :(得分:0)
尝试:
df.query('sex == " Male"')\
.groupby(['occupation','sex'])['hours-per-week'].mean().plot('bar')