我有一个DataFrame包含如下,其中第一行是“columns”:
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中很强大。我相信必须很容易绘制这些数字。
答案 0 :(得分:1)
Pandas library提供了简单有效的工具来分析和绘制DataFrame。
考虑到已安装pandas库并且数据位于.csv
文件中(与您提供的示例相匹配)。
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
这可以通过以下方式轻松实现:
data.plot('type', 'sale', kind='bar')
导致
如果您希望对每种类型的销售进行求和,data.groupby('type').sum().plot(y='sale', kind='bar')
将会有所帮助(请参阅#3以获得解释)
这基本上是相同的命令,除了您必须首先使用groupby
pandas功能在同一年对所有销售进行总结。
data.groupby('year').sum().plot(y='sale', kind='bar')
这将导致
编辑:
你也可以将不同的'类型'通过在2个变量上使用groupby来每个条形图每年
data.groupby(['year', 'type']).sum().unstack().plot(y='sale', kind='bar', stacked=True)
有关实现所需布局的详细信息,请参阅Pandas Documentation on visualization。