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 )
第一个图显示产品 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 创建直方图