如何绘制pandas中列值的分布


您可以使用以下方法来绘制 pandas DataFrame 中列值的分布:

方法1:绘制列中值的分布

 df[' my_column ']. plot (kind=' kde ')

方法 2:绘制一列中值的分布,并按另一列分组

 df. groupby (' group_column ')[' values_column ']. plot (kind=' kde ')

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                            'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [3, 3, 4, 5, 4, 7, 7, 7, 10, 11, 
                              8, 7, 8, 9, 12, 12, 12, 14, 15, 17]})

#view DataFrame
print (df)

   team points
0 to 3
1 to 3
2 to 4
3 to 5
4 to 4
5 TO 7
6 to 7
7 to 7
8 to 10
9 to 11
10 B 8
11 B 7
12 B 8
13 B 9
14 B 12
15 B 12
16 B 12
17 B 14
18 B 15
19 B 17

示例 1:绘制列中值的分布图

以下代码显示了如何绘制列中值的分布:

 #plot distribution of values in points column
df[' points ']. plot (kind=' kde ')

请注意, kind=’kde’告诉 pandas 使用核密度估计,它会生成一条平滑的曲线,总结变量值的分布。

如果您想创建直方图,可以指定kind=’hist’ ,如下所示:

 #plot distribution of values in points column using histogram
df[' points ']. plot (kind=' hist ', edgecolor=' black ') 

此方法使用条形来表示列中值的频率,而不是总结分布形状的平滑线。

示例 2:绘制一列中值的分布,并按另一列分组

以下代码显示了如何绘制列中值的分布(按团队列分组):

 import matplotlib.pyplot as plt

#plot distribution of points by team 
df. groupby (' team ')[' points ']. plot (kind=' kde ')

#add legend
plt. legend ([' A ',' B '], title=' Team ')

#add x-axis label
plt. xlabel (' Points ')

蓝线表示A队球员的得分分布,橙线表示B队球员的得分分布。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

如何在 Pandas 中为绘图添加标题
如何调整熊猫图的图形大小
如何在子图中绘制多个 Pandas DataFrame
如何在 Pandas 中创建和自定义图例

添加评论

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