来自pandas数据框的堆叠图
我想根据下面这个数据表创建一个堆叠条形图:
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
这个图里会有两根条,一个是RECL_LCC,另一个是RECL_PI。每根条会分成三个部分,分别对应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)
但是,我得到的图是这样的:
有没有什么办法可以让我得到两列(RECL_LCC和RECL_PI),而不是现在的三列?
1 个回答
2
你的问题是数据类型不是数字,所以聚合函数无法使用,因为它们是字符串。你可以像下面这样把每个出问题的列转换成数字:
df['col'] = df['col'].astype(int)
或者你也可以直接在数据框上调用 convert_objects
方法:
df.convert_objects(convert_numeric=True)