pandas groupby 后按指定顺序输出及绘图
本文介绍如何在pandas中使用groupby进行分组统计后,按照自定义的特定顺序输出结果。通过定义索引列表并应用于groupby对象,可确保数据按期望顺序排列,进而生成符合逻辑的柱状图,便于后续对比分析与绘图展示。
在使用pandas的groupby()函数进行分组统计后,有时需要按照特定的顺序输出结果,以便于后续的图表绘制,或者与其他DataFrame进行对比分析。
## 构造 pd.DataFrame
patient_id = ['71835318256532',
'87791375711',
'66979212649388',
'46569922967175',
'998612492555522',
'982293214194',
'89981833848',
'17912315786975',
'4683495482494',
'1484143378533',
'56866972273357',
'7796319285658',
'414462476158336',
'449519578512573',
'61826664459895']
week = ['tuesday',
'tuesday',
'wednesday',
'monday',
'tuesday',
'monday',
'friday',
'tuesday',
'monday',
'friday',
'saturday',
'thursday',
'wednesday',
'thursday',
'wednesday']
d = {'patient_id': patient_id, 'week':week}
test = pd.DataFrame(data=d)
## 聚类计数
test.groupby('week')['patient_id'].count()
## output
week
friday 2
monday 3
saturday 1
thursday 2
tuesday 4
wednesday 3
Name: patient_id, dtype: int64
## 按照特定顺序输出
ind = ['monday','tuesday','wednesday','thursday','friday','saturday']
test.groupby('week')['patient_id'].count()[ind]
## output
week
monday 3
tuesday 4
wednesday 3
thursday 2
friday 2
saturday 1
Name: patient_id, dtype: int64
最终的绘图效果如下图所示。
test.groupby('week')['patient_id'].count().plot(kind='bar');

ind = ['monday','tuesday','wednesday','thursday','friday','saturday']
test.groupby('week')['patient_id'].count()[ind].plot(kind='bar');

总结
以上所述是小编给大家介绍的pandas 按照特定顺序输出的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









