一种绘制Pandas条形图的简便方法

edqdpe6u  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(100)

我有一个DataFrame包含如下,其中第一行是“列”:

id,year,type,sale  
1,1998,a,5  
2,2000,b,10  
3,1999,c,20  
4,2001,b,15  
5,2001,a,25  
6,1998,b,5  
...

字符串
我想画两个图形,第一个是


的数据
第二个就像



我的草稿中的数字可能比例不对。我是Python的新手,我知道Python的绘图功能很强大。我相信绘制这样的数字一定很容易。

4urapxun

4urapxun1#

Pandas library提供了简单有效的工具来分析和绘制 Dataframe 。
考虑到pandas库已经安装,并且数据位于.csv文件中(与您提供的示例相匹配)。

1.导入pandas库并加载数据

import pandas as pd

data = pd.read_csv('filename.csv')

字符串
你现在有一个Pandas Dataframe如下:

id  year  type  sale
0   1   1998    a   5
1   2   2000    b   10
2   3   1999    c   20
3   4   2001    b   15
4   5   2001    a   25
5   6   1998    b   5

2.绘制“销售”vs“类型”

这可以通过以下方式轻松实现:

data.plot('type', 'sale', kind='bar')


这导致


的数据
如果您希望对每种类型的销售进行求和,data.groupby('type').sum().plot(y='sale', kind='bar')可以实现这一点(请参阅#3了解解释)

3.绘制“销售”与“年份”

这基本上是相同的命令,只是您必须首先使用groupby pandas函数对同一年的所有销售进行求和。

data.groupby('year').sum().plot(y='sale', kind='bar')


这将导致



编辑:

4每年拆栈不同类型

您还可以通过在2个变量上使用groupby来解栈每个条形图每年的不同“类型”

data.groupby(['year', 'type']).sum().unstack().plot(y='sale', kind='bar', stacked=True)

注意:

有关实现所需布局的详细信息,请参阅Pandas Documentation on visualization

相关问题