Python 课程6-Pandas 和 Matplotlib库

news2024/11/24 3:39:30

前言

        在数据科学和数据分析领域,PandasMatplotlib 是两个最常用的 Python 库。Pandas 主要用于数据处理和分析,而 Matplotlib 则用于数据的可视化。它们的结合能够帮助我们快速、直观地展示数据的趋势和规律。在这篇详细的教程中,教程中将为你介绍 Pandas 和 Matplotlib 的所有常用指令,涵盖从数据导入、处理到可视化的全过程,并附带可视化图形的效果图,让你全面掌握这两个强大工具。


目录

  1. Pandas 与 Matplotlib 概述
  2. Pandas 数据处理常用指令
    • 数据导入与导出
    • 数据清洗与操作
    • 数据聚合与变形
  3. Matplotlib 可视化常用指令
    • 常用图表类型
    • 图表自定义与美化
  4. Pandas 与 Matplotlib 实战:数据分析与可视化

1. Pandas 与 Matplotlib 概述

Pandas

        Pandas 是 Python 中用于数据处理和分析的库,提供了强大的数据结构和丰富的函数来处理表格数据和时间序列数据。它能够高效地进行数据清洗、数据筛选、数据聚合等操作,并与其他库(如 NumPy、Matplotlib)无缝集成。

Matplotlib

        Matplotlib 是一个用于生成静态、动态和交互式图形的 Python 库。它提供了丰富的绘图接口,能够生成多种图表,包括折线图、柱状图、散点图、直方图等。通过 Matplotlib,你可以将 Pandas 处理后的数据进行可视化展示,从而更好地理解和解释数据。


2. Pandas 数据处理常用指令

数据导入与导出

  • read_csv():从 CSV 文件读取数据。

    import pandas as pd
    df = pd.read_csv('data.csv')
    print(df.head())  # 查看前5行数据
    

  • to_csv():将 DataFrame 导出为 CSV 文件。

    df.to_csv('output.csv', index=False)
    

  • read_excel()to_excel():读取和保存 Excel 文件。

    df_excel = pd.read_excel('data.xlsx')
    df_excel.to_excel('output.xlsx', index=False)
    

数据清洗与操作

  • dropna():删除缺失值。

    df_clean = df.dropna()
    

  • fillna():用指定的值填充缺失值。

    df_filled = df.fillna(0)
    

  • replace():替换数据中的特定值。

    df_replaced = df.replace({'Male': 'M', 'Female': 'F'})
    

  • 条件筛选:基于条件筛选数据。

    filtered_df = df[df['age'] > 30]
    

数据聚合与变形

  • groupby():按特定列分组并计算聚合函数。

    grouped_df = df.groupby('gender')['age'].mean()
    

  • agg():对分组数据执行多个聚合操作。

    agg_df = df.groupby('gender')['age'].agg(['mean', 'max'])
    

  • pivot_table():创建数据透视表。

    pivot_df = df.pivot_table(values='salary', index='gender', columns='department', aggfunc='mean')
    

  • concat()merge():连接或合并 DataFrame。

    df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
    df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
    merged_df = pd.merge(df1, df2, on='A')
    

    3. Matplotlib 可视化常用指令

    常用图表类型

  • 折线图(Line Plot)

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 18, 16]

plt.plot(x, y)
plt.title("折线图示例")
plt.xlabel("X 轴")
plt.ylabel("Y 轴")
plt.show()

 输出:

  •  柱状图(Bar Plot)
    categories = ['A', 'B', 'C', 'D']
    values = [5, 7, 3, 8]
    
    plt.bar(categories, values)
    plt.title("柱状图示例")
    plt.xlabel("类别")
    plt.ylabel("值")
    plt.show()
    

输出:

  • 散点图(Scatter Plot)

    import numpy as np
    
    x = np.random.rand(50)
    y = np.random.rand(50)
    
    plt.scatter(x, y)
    plt.title("散点图示例")
    plt.xlabel("X 轴")
    plt.ylabel("Y 轴")
    plt.show()
    

输出:

  • 直方图(Histogram)

data = np.random.randn(1000)

plt.hist(data, bins=30, alpha=0.5)
plt.title("直方图示例")
plt.xlabel("值")
plt.ylabel("频率")
plt.show()

输出:

  • 饼图(Pie Chart)

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]

plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title("饼图示例")
plt.show()

输出:

图表自定义与美化

  • 图例(Legend)

    plt.plot(x, y, label='数据线')
    plt.legend()
    

  • 颜色(Color)

    plt.plot(x, y, color='red')  # 使用红色线条
    

  • 线型(Line Style)

    plt.plot(x, y, linestyle='--')  # 虚线
    

  • 标记(Marker)

    plt.plot(x, y, marker='o')  # 圆点标记
    

 4. Pandas 与 Matplotlib 实战:数据分析与可视化

         让我们通过一个综合的例子,将 Pandas 数据处理和 Matplotlib 数据可视化结合起来,完成一个完整的数据分析过程。

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df = pd.read_csv('data.csv')

# 数据清洗:删除缺失值
df_clean = df.dropna()

# 数据分析:按性别分组计算平均工资
grouped_df = df_clean.groupby('gender')['salary'].mean()

# 数据可视化:生成柱状图
grouped_df.plot(kind='bar', color=['blue', 'orange'])
plt.title("按性别分组的平均工资")
plt.xlabel("性别")
plt.ylabel("平均工资")
plt.show()

输出:

        这个示例展示了如何使用 Pandas 进行数据处理,并使用 Matplotlib 将结果以柱状图的形式进行可视化展示。通过这种方式,你可以快速生成专业的可视化图表并分析数据的潜在规律。


结论

        通过本教程,你已经学习了如何结合使用 Pandas 进行数据清洗和分析,Matplotlib 进行数据可视化展示。掌握这些工具后,你将能够高效地处理大规模数据,并生成直观的图表展示数据背后的规律和趋势。无论是在数据分析、数据科学项目,还是日常数据处理任务中,这些工具都将成为你不可或缺的伙伴。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2135539.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何对离线数仓和准实时数仓进行精准把控?

数仓是指将企业中各个业务系统产生的数据进行汇总、清洗、转化和整合,以便为企业提供决策支持和数据分析的存储和管理系统。 离线数仓和准实时数仓,这两种数据仓库模式,各有其特点,根据其特点和适用的应用场景选择合适的仓库模式…

Nginx快速使用

如果本系列文章对您有帮助,可以 star 一下我的 limou-learn-note,求求惹(๑> <)☆♡~ 叠甲:以下文章主要是依靠我的实际编码学习中总结出来的经验之谈,求逻辑自洽,不能百分百保证正确&#xff…

2024桥梁科技两江论坛——第二届桥梁工程安全与韧性学术会议

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网:https://ais.cn/u/vEbMBz提交检索:EI Compendex、IEEE Xplore、Scopus 三、大会介绍 2024年桥梁科技两江论坛——第二届桥梁工程…

七、结合Landsat、夜光数据建成区提取——K均值聚类和监督分类提取精确的建成区边界

一、前言 前面已经明确K均值聚类确定初步城市边界范围,其实除了使用Arcgis可以实现聚类分析之外,SPSS也可以实现,但是毕竟我们需要在空间层面体现聚类效果,SPSS能实现数据制表的结果,所以还是建议大家采用Arcgis进行聚类分析,前文的聚类分析不是很详细,这里再次详细给大…

刚刚!1区top“灌水”神刊,39天Accepted!真正的沾边可录

01 沾边即录-快刊 1、数据科学类 SCI • 影响因子:2.0-3.0 • 期刊分区:JCR1区,中科院2区-Top • 接收领域:数据科学的进展和应用研究,如:大数据处理和分析、人工智能、物联网、以及数据科学与计算技术的…

uni-app 聊天界面滚动到消息底部

目录 问题 组件 页面 使用的API 总结 问题 当你发一个消息,但是消息却需要你自己向下滑你才能看见,否则一直呗输入框挡住。 组件 scroll-view组件:一般使用scroll-view组件的都采取使用其scroll-into-view或者scroll-to属性。 scroll-…

Spring3-IoC1-IoC容器、基于xml管理bean

目录 IoC容器 概述 依赖注入 IoC容器在Spring中的实现 基于xml管理bean 获取bean 依赖注入 setter注入 构造器注入 特殊值处理 字面量赋值 null值 xml实体 CDATA节 特殊类型属性注入 对象类型属性注入 方式一:引用外部bean 方式二:内部…

设背包密码系统的超递增序列为A=(3,4,9,17,35),乘数t=19,模数k=73,试对good night加密

PS:后续在此基础上更新Java代码 1.超递增序列含义 超递增序列是指一个正整数序列,其中每个元素a[i](i≥2)都大于它前面所有元素之和,即a[i] > (a[1] a[2] ... a[i-1]) 2.加密公式 C( B…

html+css+js网页设计 旅游 大理旅游7个页面

htmlcssjs网页设计 旅游 大理旅游7个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…

信通院发布首个《大模型媒体生产与处理》标准,阿里云智能媒体服务作为业界首家“卓越级”通过

中国信通院近期正式发布《大模型驱动的媒体生产与处理》标准,阿里云智能媒体服务,以“首批首家”通过卓越级评估,并在9大模块50余项测评中表现为“满分”。 当下,AI大模型的快速发展带动了爆发式的海量AI运用,这其中&a…

异构仿真:打造更可靠的综合化航空电子软件

综合化航空电子系统是一类典型的安全关键系统,具有分布式、异构、计算资源和物理资源强耦合等特征。随着IMA(Integrated Modular Avionics,综合模块化航空电子)系统趋于复杂化和智能化,系统的功能越来越多地采用软件来…

权威认可,信源信息再次斩获国家发明专利

近日,郑州信源信息技术股份有限公司(简称“信源信息”)继获得“一种安全认证方法及系统”发明专利后,再次喜获国家知识产权局颁发的发明专利“适用于多环境OFD文档的投标文件处理方法及系统”。本次发明专利的获得,不仅…

华为云ROMA Connect聚焦创新,在Gartner®峰会发布智能集成新视角

9月9日-9月10日,Gartner全球应用创新及商业解决方案峰会在伦敦举行,围绕企业应用策略、智能平台工程和生成式AI,来自全球的1700业内专家共同探讨新趋势带来的机遇和挑战。华为云ROMA Connect发表 “人工智能”主题演讲之一,展现新…

黑龙江等保测评二级系统费用解析:如何合理预算?

在信息安全日益受到重视的今天,等保测评成为企业合规的重要环节。尤其是在黑龙江,随着网络安全法的实施,越来越多的企业开始关注等保测评的相关费用。那么,黑龙江等保测评二级系统的费用是如何计算的呢? 首先&#xf…

linux 定时将固态硬盘数据备份至机械硬盘

需求背景 为了加强公司数据的安全性和可靠性,我们将实施一项数据备份策略。该策略涉及将服务器上的固态硬盘(SSD)中的关键数据定期备份到机械硬盘(HDD)上。这一过程旨在保护数据免受意外删除、硬件故障或其他潜在风险…

【诉讼流程-健身房-违约认定-私教课-诉讼书前提材料整理-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(2)】

【诉讼流程-健身房-违约-私教课-前期法律流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(2)】 (1)前言说明1、目的2、一个小测试1、更换原教练2、频繁更换教练3、上课估计拖课,占用上课时间,抽烟等。4、以…

VMware Workstation Pro 17 提供个人版使用

说明 VMware 下载链接已经合并到博通网站,原有网站已停用。 注册 注册并登录博通网站,即可下载软件,不过注册有很多限制 建议使用国外的邮箱。 我是用gmail注册的。 下载 https://support.broadcom.com/group/ecx/productdownloads?subf…

JavaScript 基础 - 第16天_AJAX入门

文章目录 Day01_Ajax入门目录学习目标01.AJAX 概念和 axios 使用目标讲解小结 02.认识 URL目标讲解小结 03.URL 查询参数目标讲解小结 04.案例-查询-地区列表目标讲解小结 05.常用请求方法和数据提交目标讲解小结 06.axios 错误处理目标讲解小结 07.HTTP 协议-请求报文目标讲解…

iOS 知识点记录

王巍 博客地址:OneVs Den git地址:onevcat (Wei Wang) GitHub 江湖人称喵神,目前就职于line。喵神的博客涉及方面比较广, 有Obejctive-C, Swift, SwiftUI, Unity等等。博客内容很有深度,非常值得关注。 戴铭 博客地址&#xff1…

Springboot项目打war包运行及错误解决

一,打war包 1. 修改pom.xml 为了不影响原pom.xml, 我复制了一个文件叫pom_war.xml , 需要打war包就采用pom_war.xml进行打war包, 你也可以直接修改pom.xml ① 打包方式改为war 没有就增加此配置 <packaging>war</packaging> ② 排除内嵌tomcat依赖 <de…