如何根据其他“教育”列的条件绘制“申请人_收入”列的直方图?

时间:2019-06-05 03:35:36

标签: python matplotlib histogram

我有一个csv文件,其中包含列'Applicant_Income'和'Education'。我可以绘制'Applicant_Income',但如何绘制'Applicant_Income'的历史,其中'Education' = 'Graduate'

我尝试了箱线图中的某些内容,想要在直方图中类似的内容。

g1=df.boxplot('ApplicantIncome', by = 'Education')

1 个答案:

答案 0 :(得分:0)

通常,您将要使用plt.hist来表示直方图。从您的问题出发,尚不清楚是要过滤数据('Education' == 'Graduate')还是要为Education中的每个组绘制单个直方图。

让我们生成示例数据

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df = pd.DataFrame({'ApplicantIncome': np.random.normal(500, 2000, 500),
                   'Education': np.random.choice(['Graduate', 'High School', 'Undergrad'], 500)})


    ApplicantIncome Education
0   617.660998      Undergrad
1   1335.209849     Graduate
2   -966.902454     Undergrad
3   1775.496777     High School
4   -819.677673     Undergrad

现在,如果您只想绘制过滤后的数据:

df_grad = df[df['Education'] == 'Graduate']
plt.hist(df_grad['ApplicantIncome'])

如果要为每种教育状况绘制一个直方图:

for name, group in df.groupby('Education'):
    plt.hist(group['ApplicantIncome'], label=name)