【发布时间】:2021-09-12 19:25:28
【问题描述】:
我正在尝试创建一个复制图像的堆叠条形图,我已从 csv 读取数据并尝试进行分组并显示堆叠条但未获得所需的输出。
我对这样的数据进行了分组:
modified_df1 = modified_df.groupby(["business_postal_code","risk_category"]).size().reset_index(name='counts')
modified_df1 = modified_df.loc[modified_df['counts'] > 1100]
分组过滤后的数据如下:
business_postal_code risk_category counts
20 94102.0 Low Risk 1334
22 94102.0 UnKnown 1106
24 94103.0 Low Risk 1472
25 94103.0 Moderate Risk 1474
26 94103.0 UnKnown 1329
44 94109.0 Low Risk 1415
48 94110.0 Low Risk 2189
49 94110.0 Moderate Risk 1731
50 94110.0 UnKnown 1331
117 94133.0 Low Risk 1412
然后做了堆栈栏:
df2 = modified_df1.groupby(['business_postal_code','risk_category'])['business_postal_code'].count().unstack('risk_category')
df2[['Moderate Risk','Low Risk']].plot(kind='bar', stacked=True)
请建议,如何实现所需的输出。问题是,我必须将数据按 2 列分组,然后必须应用过滤器(如果计数 > 1100)并打印堆栈栏。
【问题讨论】:
标签: python dataframe matplotlib pandas-groupby bar-chart