所以这是我的数据集的样子:
In [1]: df1=pd.DataFrame(np.random.rand(4,2),index=["A","B","C","D"],columns=["I","J"])
In [2]: df2=pd.DataFrame(np.random.rand(4,2),index=["A","B","C","D"],columns=["I","J"])
In [3]: df1
Out[3]:
I J
A 0.675616 0.177597
B 0.675693 0.598682
C 0.631376 0.598966
D 0.229858 0.378817
In [4]: df2
Out[4]:
I J
A 0.939620 0.984616
B 0.314818 0.456252
C 0.630907 0.656341
D 0.020994 0.538303
Run Code Online (Sandbox Code Playgroud)
我希望每个数据帧都有堆积条形图,但由于它们具有相同的索引,我希望每个索引有2个堆叠条形.
我试图在同一轴上绘制两个:
In [5]: ax = df1.plot(kind="bar", stacked=True)
In [5]: ax2 = df2.plot(kind="bar", stacked=True, ax = ax)
Run Code Online (Sandbox Code Playgroud)
但它重叠.
然后我尝试先连接两个数据集:
pd.concat(dict(df1 = df1, df2 = df2),axis = 1).plot(kind="bar", stacked=True)
Run Code Online (Sandbox Code Playgroud)
但这里一切都堆积如山
我最好的尝试是:
pd.concat(dict(df1 = df1, df2 = df2),axis = …Run Code Online (Sandbox Code Playgroud) 我想从以下数据框创建一个堆积条形图:
VALUE COUNT RECL_LCC RECL_PI
0 1 15686114 3 1
1 2 27537963 1 1
2 3 23448904 1 2
3 4 1213184 1 3
4 5 14185448 3 2
5 6 13064600 3 3
6 7 27043180 2 2
7 8 11732405 2 1
8 9 14773871 2 3
Run Code Online (Sandbox Code Playgroud)
情节中会有2个酒吧.一个用于RECL_LCC,另一个用于RECL_PI.每个条形中有3个部分对应于RECL_LCC和RECL_PI中的唯一值,即1,2,3,并将每个部分的COUNT相加.到目前为止,我有这样的事情:
df = df.convert_objects(convert_numeric=True)
sub_df = df.groupby(['RECL_LCC','RECL_PI'])['COUNT'].sum().unstack()
sub_df.plot(kind='bar',stacked=True)
Run Code Online (Sandbox Code Playgroud)
但是,我得到这个情节:

有关如何解决它的任何想法?我对groupby做错了,但不确定解决方案