pandas - 跨三维绘制熊猫面板列
问题描述
我有 3 个形状相同的单独数据框,其中包含以下数据。
# for 2015
Grave Crimes Cases Recorded Mistake of Law fact
Abduction 725 3
Kidnapping 246 6
Arson 466 1
Mischief 436 1
House Breaking 12707 21
Grievous Hurt 1299 3
# for 2016
Grave Crimes Cases Recorded Mistake of Law fact
Abduction 738 4
Kidnapping 297 9
Arson 486 4
Mischief 394 1
House Breaking 10287 14
Grievous Hurt 1205 0
# for 2017
Grave Crimes Cases Recorded Mistake of Law fact
Abduction 647 2
Kidnapping 251 10
Arson 418 3
Mischief 424 0
House Breaking 8913 12
Grievous Hurt 1075 1
我想按年份针对“严重犯罪”类型组绘制每一列(例如“记录的案件”)。我目前的面板如下。创建面板时我没有设置任何索引。此外,每个数据框都没有任何表示年份的列,如上所示。
pnl = pd.Panel({2015: df15, 2016: df16, 2017: df17})
我的预期输出如下所示。有人可以帮我吗?
解决方案
自 0.20.1+ 起,面板已在 Pandas 中弃用
我们可以使用 pd.concat 和键将这些数据帧组合成一个数据帧,然后使用重塑和熊猫图。
l = ['df2015','df2016','df2017']
df_out = pd.concat([eval(i) for i in l], keys=l)\
.set_index('Grave Crimes',append=True)['Cases Recorded'].unstack(0)\
.rename(columns=lambda x: x[2:]).reset_index(0, drop=True)
df_out.plot.bar()
输出:
推荐阅读
- c# - WPF文本框c#中的Shift-Enter(小)换行符
- django - 启动gunicorn时如何修复'ModuleNotFoundError:没有名为'mainpage'的模块'?
- c++ - 未自动确定的模板类型的隐式转换运算符
- elasticsearch - ElasticSearch 的雪球过滤器中的 German vs. German2
- javascript - 如何在 for...in 中获取嵌套对象属性的正确属性?
- google-cloud-platform - 谷歌云 API 和谷歌翻译网站给出不同的结果。如何获得相同的结果?
- c# - c# 脚本应该在悬停时更改文本颜色。脚本不是在游戏中改变颜色,而是在改变材质颜色
- android - 应用程序停止在手机上工作,同时在所有模拟器上工作,只有一部手机华为 Nova 3e 可以工作
- wordpress - 如何删除 WooCommerce 账单页面上的“通过 Razorpay 支付”徽章?
- qt - 如何将矩形添加到 QML ChartView?