当前位置: 首页 > news >正文

Python 课程6-Pandas 和 Matplotlib库

前言

        在数据科学和数据分析领域,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 pltx = [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 npx = 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 进行数据可视化展示。掌握这些工具后,你将能够高效地处理大规模数据,并生成直观的图表展示数据背后的规律和趋势。无论是在数据分析、数据科学项目,还是日常数据处理任务中,这些工具都将成为你不可或缺的伙伴。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 102.WEB渗透测试-信息收集-FOFA语法(2)
  • 【Linux】数据链路层
  • Spring3-IoC1-IoC容器、基于xml管理bean
  • Android 源码多个Launcher设置默认Launcher
  • 『功能项目』C#拓展 - 优化冗余脚本【36】
  • 目标检测从入门到精通——数据增强方法总结
  • 使用vue2+axios+chart.js画折线图 ,出现 RangeError: Maximum call stack size exceeded 错误
  • 远程访问电脑共享文件
  • 一文说清什么是数据仓库
  • 灌区信息化建设的主要内容
  • 视频监控基础学习
  • GaN挑战Si价格底线?英飞凌推出全球首个12英寸GaN晶圆技术
  • 使用程序方式获取与处理MySQL表数据
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第二集:通过InControl插件实现绑定玩家输入以及制作小骑士移动空闲动画
  • Spring Cloud之二 微服务注册
  • 【译】JS基础算法脚本:字符串结尾
  • [笔记] php常见简单功能及函数
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Golang-长连接-状态推送
  • js
  • learning koa2.x
  • ng6--错误信息小结(持续更新)
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • vue脚手架vue-cli
  • 机器学习中为什么要做归一化normalization
  • 新书推荐|Windows黑客编程技术详解
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 阿里云重庆大学大数据训练营落地分享
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (3)nginx 配置(nginx.conf)
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十)T检验-第一部分
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)重识new
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .net和jar包windows服务部署
  • .NET值类型变量“活”在哪?
  • @AliasFor注解
  • @Autowired和@Resource装配
  • @PreAuthorize与@Secured注解的区别是什么?
  • @WebService和@WebMethod注解的用法
  • [ C++ ] 继承
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [1525]字符统计2 (哈希)SDUT
  • [20150629]简单的加密连接.txt
  • [android] 请求码和结果码的作用
  • [Android]通过PhoneLookup读取所有电话号码
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C++][ProtoBuf][初识ProtoBuf]详细讲解
  • [C++]拼图游戏
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案