Pandas:如何使用 groupby 和 plot(附示例)


您可以使用以下方法对 pandas DataFrame 进行分组和绘图:

方法 1:分组并在单个路径中绘制多条线

 #define index column
df. set_index ('day', inplace= True )

#group data by product and display sales as line chart
df. groupby (' product ')[' sales ']. plot (legend= True )

方法 2:在各个子图中分组并绘制线条

 p.d. pivot_table ( df.reset_index (),
               index=' day ', columns=' product ', values=' sales '
              ). plot (subplots= True )

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
                   ' product ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' sales ': [4, 7, 8, 12, 15, 8, 11, 14, 19, 20]})

#view DataFrame
df

	day product sales
0 1 A 4
1 2 To 7
2 3 To 8
3 4 A 12
4 5 To 15
5 1 B 8
6 2 B 11
7 3 B 14
8 4 B 19
9 5 B 20

方法 1:分组并在单个路径中绘制多条线

以下代码显示了如何按变量“产品”对 DataFrame 进行分组,并在图表中绘制每个产品的“销售额”:

 #define index column
df. set_index (' day ', inplace= True )

#group data by product and display sales as line chart
df. groupby (' product ')[' sales ']. plot (legend= True ) 

大熊猫的分组和阴谋

x 轴显示日期,y 轴显示销售额,每一行显示单个产品的销售额。

方法 2:在各个子图中分组并绘制线条

以下代码显示了如何按变量“产品”对 DataFrame 进行分组,并在各个子图中绘制每个产品的“销售额”:

 p.d. pivot_table ( df.reset_index (),
               index=' day ', columns=' product ', values=' sales '
              ). plot (subplots= True ) 

pandas 被分组并绘制在子图中

第一个图显示产品 A 的销售额,第二个图显示产品 B 的销售额。

请注意,我们还可以使用布局参数来指定子跟踪的布局。

例如,我们可以指定子图位于一行两列的网格中:

 p.d. pivot_table ( df.reset_index (),
               index=' day ', columns=' product ', values=' sales '
              ). plot (subplots= True , layout=(1,2)) 

其他资源

以下教程解释了如何在 pandas 中创建其他常见的可视化效果:

如何从 Pandas DataFrame 创建箱线图
如何从 Pandas DataFrame 创建饼图
如何从 Pandas DataFrame 创建直方图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注