来自pandas数据帧的堆积图

时间:2014-10-31 20:47:15

标签: 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      6  13064600         3        3
6      7  27043180         2        2
7      8  11732405         2        1
8      9  14773871         2        3

情节中会有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)

然而,我得到了这个情节:

enter image description here

有关如何获得2列(RECL_LCC和RECL_PI)而不是这3列的任何想法吗?

1 个答案:

答案 0 :(得分:2)

所以你的问题是dtypes不是数字,所以没有聚合函数可以工作,因为它们是字符串,所以你可以像这样转换每个违规列:

df['col'] = df['col'].astype(int)

或只需在df上调用convert_objects

df.convert_objects(convert_numeric=True)