如何在图形中绘制pandas groupby值?
发布时间:2020-12-20 12:13:06 所属栏目:Python 来源:网络整理
导读:我有一个csv文件,其中包含性别和婚姻状态以及更多列,如下所示. Loan_ID,Gender,Married,Dependents,Education,Self_Employed,ApplicantIncome,CoapplicantIncome,LoanAmount,Loan_Amount_Term,Credit_History,Property_Area,Loan_StatusLP001002,Male,No,Gra
我有一个csv文件,其中包含性别和婚姻状态以及更多列,如下所示.
Loan_ID,Gender,Married,Dependents,Education,Self_Employed,ApplicantIncome,CoapplicantIncome,LoanAmount,Loan_Amount_Term,Credit_History,Property_Area,Loan_Status LP001002,Male,No,Graduate,5849,360,1,Urban,Y LP001003,Yes,4583,1508,128,Rural,N LP001005,3000,66,Y LP001006,Not Graduate,2583,2358,120,Y LP001008,6000,141,Y LP001011,2,5417,4196,267,Y 我想要数不.已婚男性和女性的结果如下图所示 以下是我使用的代码: import csv import pandas as pd import numpy as np import matplotlib.pyplot as plt if __name__ == '__main__': x=[] y=[] df = pd.read_csv( "/home/train.csv",usecols=[1,2]).dropna(subset=['Gender','Married']) # Reading the dataset in a dataframe using Pandas groups = df.groupby(['Gender','Married'])['Married'].apply(lambda x: x.count()) print(groups) 分组后我有以下结果: Gender Married Female No 80 Yes 31 Male No 130 Yes 357 我想要一个如下图表 解决方法
您可以使用
groupby
size 然后使用
Series.plot.bar :
Difference between count and size. groups = df.groupby(['Gender','Married']).size() groups.plot.bar() 另一种解决方案是为重塑或 print (df.groupby(['Gender','Married']).size().unstack(fill_value=0)) Married No Yes Gender Female 80 31 Male 130 357 df.groupby(['Gender','Married']).size().unstack(fill_value=0).plot.bar() 要么: pd.crosstab(df['Gender'],df['Married']).plot.bar() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |