一、简介
在使用Pandas分析数据时,会使用Pandas函数来过滤和转换列,连接多个数据帧中的数据等操作。
但是,生成图表——将数据在数据帧中可视化——通常比仅仅查看数字更有帮助。
Pandas具有几个绘图函数,可以使用它们快速轻松地实现数据可视化。我们将在本教程中介绍这些函数。
【示例代码】:https://github.com/balapriyac/python-data-analysis/blob/main/pandas-plotting-fns/pandas_plotting_functions.ipynb
二、创建Pandas数据帧
首先创建一个用于分析的示例数据帧。我们将创建一个名为df_employees的数据帧,其中包含员工记录。
我们将使用Faker和NumPy的随机模块来填充数据帧,生成200条记录。
注意:如果你的开发环境中没有安装Faker,请使用pip安装:pip install Faker。
运行以下代码片段来创建df_employees,并向其中填充记录:
我们设置了种子以便重现结果。所以每次运行此代码,都会得到相同的记录。
以下是数据帧的前几条记录:
图片
df_employees.head(10)的输出结果
三、Pandas绘图函数
1. 散点图
散点图通常用于了解数据集中任意两个变量之间的关系。
对于df_employees数据帧,让我们创建一个散点图来可视化员工年龄和工资之间的关系。这将帮助我们了解员工年龄和工资之间是否存在一定的相关性。
要绘制散点图,我们可以使用plot.scatter(),如下所示:
对于此示例数据帧,我们并未看到员工年龄和工资之间的任何相关性。
2. 折线图
折线图适用于识别连续变量(通常是时间或类似刻度)上的趋势和模式。
在创建df_employees数据帧时,我们已经定义了员工在公司工作年限与工资之间的线性关系。因此,让我们看一下显示工作年限与平均工资变化的折线图。
我们先按工作年限分组找到平均工资,然后使用plot.line()绘制折线图:
图片
由于我们选择使用员工在公司工作年限的线性关系来填充薪资字段,因此可以清晰地看到折线图反映了这一点。
3. 直方图
可以使用直方图来可视化连续变量的分布情况,方法是将数值划分成区间或分段,并显示每个分段中的数据点数量。
让我们使用plot.hist()绘制直方图来了解员工年龄的分布情况,如下所示:
图片
4. 箱形图
箱形图有助于了解变量的分布、扩散情况,并用于识别异常值。
让我们创建一个箱形图,比较不同部门间的工资分布情况,从而对组织部的工资分布情况进行高层次的比较。
箱形图还有助于确定薪资范围以及每个部门的有用信息,如中位数薪资和潜在的异常值等。
在这里,我们使用根据“部门(Department)”分组的“薪资(Salary)”列来绘制箱形图:
图片
从箱线图中,我们可以看到某些部门的薪资分布比其他部门更广泛。
5. 条形图
如果想要了解变量在出现频率方面的分布情况,可以使用条形图。
现在,让我们使用plot.bar()绘制一个条形图来可视化员工数量:
图片
6. 面积图
面积图通常用于可视化在连续轴或分类轴上的累积分布变量。
对于员工数据帧,我们可以绘制不同年龄组的累积薪资分布图。为了将员工映射到基于年龄组的区间中,我们需要使用pd.cut()。
然后,我们通过“年龄组(AgeGroup)”对薪资进行累积求和。为了得到面积图,我们使用plot.area():
7. 饼图
饼图有助于可视化各个部门在整体组织中的薪资分布比例。
对于我们的示例,创建一个饼图来显示组织中各个部门的薪资分布是很有意义的。
我们通过部门对员工的薪资进行分组,然后使用plot.pie()来绘制饼图:
四、总结
以上就是7个用于快速数据可视化的Pandas绘图函数。也可以尝试使用matplotlib和seaborn生成更漂亮的图表。但是对于快速数据可视化,上述这些函数非常方便。