当前位置:首页 > 科技  > 软件

极速数据可视化!七个Pandas绘图函数助你事半功倍

来源: 责编: 时间:2024-01-04 09:33:41 496观看
导读一、简介在使用Pandas分析数据时,会使用Pandas函数来过滤和转换列,连接多个数据帧中的数据等操作。但是,生成图表——将数据在数据帧中可视化——通常比仅仅查看数字更有帮助。Pandas具有几个绘图函数,可以使用它们快速轻

一、简介

在使用Pandas分析数据时,会使用Pandas函数来过滤和转换列,连接多个数据帧中的数据等操作。WXG28资讯网——每日最新资讯28at.com

但是,生成图表——将数据在数据帧中可视化——通常比仅仅查看数字更有帮助。WXG28资讯网——每日最新资讯28at.com

Pandas具有几个绘图函数,可以使用它们快速轻松地实现数据可视化。我们将在本教程中介绍这些函数。WXG28资讯网——每日最新资讯28at.com

【示例代码】:https://github.com/balapriyac/python-data-analysis/blob/main/pandas-plotting-fns/pandas_plotting_functions.ipynbWXG28资讯网——每日最新资讯28at.com

二、创建Pandas数据帧

首先创建一个用于分析的示例数据帧。我们将创建一个名为df_employees的数据帧,其中包含员工记录。WXG28资讯网——每日最新资讯28at.com

我们将使用Faker和NumPy的随机模块来填充数据帧,生成200条记录。WXG28资讯网——每日最新资讯28at.com

注意:如果你的开发环境中没有安装Faker,请使用pip安装:pip install Faker。WXG28资讯网——每日最新资讯28at.com

运行以下代码片段来创建df_employees,并向其中填充记录:WXG28资讯网——每日最新资讯28at.com

import pandas as pdfrom faker import Fakerimport numpy as np# 实例化Faker对象fake = Faker()Faker.seed(27)# 为员工创建一个数据帧num_employees = 200departments = ['Engineering', 'Finance', 'HR', 'Marketing', 'Sales', 'IT']years_with_company = np.random.randint(1, 10, size=num_employees)salary = 40000 + 2000 * years_with_company * np.random.randn()employee_data = { 'EmployeeID': np.arange(1, num_employees + 1), 'FirstName': [fake.first_name() for _ in range(num_employees)], 'LastName': [fake.last_name() for _ in range(num_employees)], 'Age': np.random.randint(22, 60, size=num_employees), 'Department': [fake.random_element(departments) for _ in range(num_employees)], 'Salary': np.round(salary), 'YearsWithCompany': years_with_company}df_employees = pd.DataFrame(employee_data)# 显示数据帧的头部df_employees.head(10)

我们设置了种子以便重现结果。所以每次运行此代码,都会得到相同的记录。WXG28资讯网——每日最新资讯28at.com

以下是数据帧的前几条记录:WXG28资讯网——每日最新资讯28at.com

图片图片WXG28资讯网——每日最新资讯28at.com

df_employees.head(10)的输出结果WXG28资讯网——每日最新资讯28at.com

三、Pandas绘图函数

1. 散点图

散点图通常用于了解数据集中任意两个变量之间的关系。WXG28资讯网——每日最新资讯28at.com

对于df_employees数据帧,让我们创建一个散点图来可视化员工年龄和工资之间的关系。这将帮助我们了解员工年龄和工资之间是否存在一定的相关性。WXG28资讯网——每日最新资讯28at.com

要绘制散点图,我们可以使用plot.scatter(),如下所示:WXG28资讯网——每日最新资讯28at.com

# 散点图:年龄与工资df_employees.plot.scatter(x='Age', y='Salary', title='Scatter Plot: Age vs Salary', xlabel='Age', ylabel='Salary', grid=True)

图片WXG28资讯网——每日最新资讯28at.com

对于此示例数据帧,我们并未看到员工年龄和工资之间的任何相关性。WXG28资讯网——每日最新资讯28at.com

2. 折线图

折线图适用于识别连续变量(通常是时间或类似刻度)上的趋势和模式。WXG28资讯网——每日最新资讯28at.com

在创建df_employees数据帧时,我们已经定义了员工在公司工作年限与工资之间的线性关系。因此,让我们看一下显示工作年限与平均工资变化的折线图。WXG28资讯网——每日最新资讯28at.com

我们先按工作年限分组找到平均工资,然后使用plot.line()绘制折线图:WXG28资讯网——每日最新资讯28at.com

# 折线图:平均工资随工作年限的变化趋势average_salary_by_experience = df_employees.groupby('YearsWithCompany')['Salary'].mean()df_employees['AverageSalaryByExperience'] = df_employees['YearsWithCompany'].map(average_salary_by_experience)df_employees.plot.line(x='YearsWithCompany', y='AverageSalaryByExperience', marker='o', linestyle='-', title='Average Salary Trend Over Years of Experience', xlabel='Years With Company', ylabel='Average Salary', legend=False, grid=True)

图片图片WXG28资讯网——每日最新资讯28at.com

由于我们选择使用员工在公司工作年限的线性关系来填充薪资字段,因此可以清晰地看到折线图反映了这一点。WXG28资讯网——每日最新资讯28at.com

3. 直方图

可以使用直方图来可视化连续变量的分布情况,方法是将数值划分成区间或分段,并显示每个分段中的数据点数量。WXG28资讯网——每日最新资讯28at.com

让我们使用plot.hist()绘制直方图来了解员工年龄的分布情况,如下所示:WXG28资讯网——每日最新资讯28at.com

# 直方图:年龄分布df_employees['Age'].plot.hist(title='Age Distribution', bins=15)

图片图片WXG28资讯网——每日最新资讯28at.com

4. 箱形图

箱形图有助于了解变量的分布、扩散情况,并用于识别异常值。WXG28资讯网——每日最新资讯28at.com

让我们创建一个箱形图,比较不同部门间的工资分布情况,从而对组织部的工资分布情况进行高层次的比较。WXG28资讯网——每日最新资讯28at.com

箱形图还有助于确定薪资范围以及每个部门的有用信息,如中位数薪资和潜在的异常值等。WXG28资讯网——每日最新资讯28at.com

在这里,我们使用根据“部门(Department)”分组的“薪资(Salary)”列来绘制箱形图:WXG28资讯网——每日最新资讯28at.com

# 箱形图:按部门分列的薪金分布情况df_employees.boxplot(column='Salary', by='Department', grid=True, vert=False)

图片图片WXG28资讯网——每日最新资讯28at.com

从箱线图中,我们可以看到某些部门的薪资分布比其他部门更广泛。WXG28资讯网——每日最新资讯28at.com

5. 条形图

如果想要了解变量在出现频率方面的分布情况,可以使用条形图。WXG28资讯网——每日最新资讯28at.com

现在,让我们使用plot.bar()绘制一个条形图来可视化员工数量:WXG28资讯网——每日最新资讯28at.com

# 条形图:按部门的员工数量df_employees['Department'].value_counts().plot.bar(title='Employee Count by Department')

图片图片WXG28资讯网——每日最新资讯28at.com

6. 面积图

面积图通常用于可视化在连续轴或分类轴上的累积分布变量。WXG28资讯网——每日最新资讯28at.com

对于员工数据帧,我们可以绘制不同年龄组的累积薪资分布图。为了将员工映射到基于年龄组的区间中,我们需要使用pd.cut()。WXG28资讯网——每日最新资讯28at.com

然后,我们通过“年龄组(AgeGroup)”对薪资进行累积求和。为了得到面积图,我们使用plot.area():WXG28资讯网——每日最新资讯28at.com

# 面积图:不同年龄组的累积薪资分布df_employees['AgeGroup'] = pd.cut(df_employees['Age'], bins=[20, 30, 40, 50, 60], labels=['20-29', '30-39', '40-49', '50-59'])cumulative_salary_by_age_group = df_employees.groupby('AgeGroup')['Salary'].cumsum()df_employees['CumulativeSalaryByAgeGroup'] = cumulative_salary_by_age_groupdf_employees.plot.area(x='AgeGroup', y='CumulativeSalaryByAgeGroup', title='Cumulative Salary Distribution Over Age Groups', xlabel='Age Group', ylabel='Cumulative Salary', legend=False, grid=True)

7. 饼图

饼图有助于可视化各个部门在整体组织中的薪资分布比例。WXG28资讯网——每日最新资讯28at.com

对于我们的示例,创建一个饼图来显示组织中各个部门的薪资分布是很有意义的。WXG28资讯网——每日最新资讯28at.com

我们通过部门对员工的薪资进行分组,然后使用plot.pie()来绘制饼图:WXG28资讯网——每日最新资讯28at.com

# 饼图:按部门划分的薪资分布df_employees.groupby('Department')['Salary'].sum().plot.pie(title='Department-wise Salary Distribution', autopct='%1.1f%%')

四、总结

以上就是7个用于快速数据可视化的Pandas绘图函数。也可以尝试使用matplotlib和seaborn生成更漂亮的图表。但是对于快速数据可视化,上述这些函数非常方便。WXG28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-57406-0.html极速数据可视化!七个Pandas绘图函数助你事半功倍

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Go Lang Fiber介绍

下一篇: 五个大幅提升开发效率的VS Code技巧

标签:
  • 热门焦点
  • 对标苹果的灵动岛 华为带来实况窗功能

    继苹果的灵动岛之后,华为也在今天正式推出了“实况窗”功能。据今天鸿蒙OS 4.0的现场演示显示,华为的实况窗可以更高效的展现出实时通知,比如锁屏上就能看到外卖、打车、银行
  • 摸鱼心法第一章——和配置文件说拜拜

    为了能摸鱼我们团队做了容器化,但是带来的问题是服务配置文件很麻烦,然后大家在群里进行了“亲切友好”的沟通图片图片图片图片对比就对比,简单对比下独立配置中心和k8s作为配
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    ©自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 电视息屏休眠仍有网络上传 爱奇艺被质疑“薅消费者羊毛”

    记者丨宁晓敏 见习生丨汗青出品丨鳌头财经(theSankei) 前不久,爱奇艺发布了一份亮眼的一季报,不仅营收和会员营收创造历史最佳表现,其运营利润也连续6个月实现增长。自去年年初
  • “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 小米MIX Fold 3下月亮相:今年唯一无短板的全能折叠屏

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都有新的进展,其中荣耀、三星都已陆续发布了最新的折叠屏旗舰,尤其号荣耀Magi
  • Meta盲目扩张致超万人被裁,重金押注元宇宙而前景未明

    图片来源:图虫创意日前,Meta创始人兼CEO 马克·扎克伯发布公开信,宣布Meta计划裁员超11000人,占其员工总数13%。他公开承认了自己的预判失误:“不仅
Top