Python 数据帧中的叠加图

Python 数据帧中的叠加图,python,pandas,stacked,Python,Pandas,Stacked,我想从以下数据框创建堆叠条形图: 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

我想从以下数据框创建堆叠条形图:

   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
图中会有两条线。一个用于重合闸LCC,另一个用于重合闸PI。每个条中有3个区段对应于RECL_LCC和RECL_PI中的唯一值,即1,2,3,并将每个区段的计数相加。到目前为止,我有这样的想法:

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)
然而,我得到了这样的情节:


关于如何获得2列(RECL_LCC和RECL_PI)而不是这3列,你有什么想法吗?

因此你的问题是数据类型不是数字的,因此没有聚合函数可以像字符串那样工作,因此你可以像这样转换每个有问题的列:

df['col'] = df['col'].astype(int)
或者只需在df上调用
convert_objects

df.convert_objects(convert_numeric=True)

你所有的数据类型都是数字吗?您可以执行
df=df.convert\u objects(convert\u numeric=True)
以确保数据类型为int/floatsAgree和@EdChum。你的代码在我这一边验证(我可以很好地绘制出来)。谢谢!这需要修改代码以包含convert_objects语句。这个情节还需要一些工作。我应该发布一个答案吗?你的答案也包括对情节的修复吗?谢谢!你怎么知道它们不是数字的呢?在你最初的帖子中,你有一个错误:
***TypeError:Empty'DataFrame':没有数字数据要打印
现在,在执行聚合后,你唯一能得到一个空数据框的方法是如果你的列都不是数字的,现在有意义了我不知道您是如何创建df的,但通常您可以在加载数据时指定数据类型,或者在创建dfI时使用_csv读取数据,这似乎没有数据类型