我有一个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的绘图功能很强大。我相信绘制这样的数字一定很容易。
4urapxun1#
Pandas library提供了简单有效的工具来分析和绘制 Dataframe 。考虑到pandas库已经安装,并且数据位于.csv文件中(与您提供的示例相匹配)。
.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了解解释)
data.groupby('type').sum().plot(y='sale', kind='bar')
这基本上是相同的命令,只是您必须首先使用groupby pandas函数对同一年的所有销售进行求和。
groupby
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。
1条答案
按热度按时间4urapxun1#
Pandas library提供了简单有效的工具来分析和绘制 Dataframe 。
考虑到pandas库已经安装,并且数据位于
.csv
文件中(与您提供的示例相匹配)。1.导入pandas库并加载数据
字符串
你现在有一个Pandas Dataframe如下:
型
2.绘制“销售”vs“类型”
这可以通过以下方式轻松实现:
型
这导致
的数据
如果您希望对每种类型的销售进行求和,
data.groupby('type').sum().plot(y='sale', kind='bar')
可以实现这一点(请参阅#3了解解释)3.绘制“销售”与“年份”
这基本上是相同的命令,只是您必须首先使用
groupby
pandas函数对同一年的所有销售进行求和。型
这将导致
的
编辑:
4每年拆栈不同类型
您还可以通过在2个变量上使用groupby来解栈每个条形图每年的不同“类型”
型
注意:
有关实现所需布局的详细信息,请参阅Pandas Documentation on visualization。