Pandas 绘制跨越三维的面板柱
我有3个单独的数据帧,形状相同,数据如下Pandas 绘制跨越三维的面板柱,pandas,matplotlib,Pandas,Matplotlib,我有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
# 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:df152016:df162017:df17})
我的预期输出如下所示。有人能帮我吗
自0.20.1起,熊猫中的面板已被弃用+ 我们可以使用带有键的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()
输出: