Pandas 绘制跨越三维的面板柱

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

我有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: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()
输出: