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

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 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.kler.cn/a/303928.html

相关文章:

  • git配置远程仓库的认证信息
  • C++ 编程基础(6)作用域 | 6.3、类作用域
  • jmeter介绍、使用方法、性能测试、现参数化和数据驱动、分布式测试、压力测试、接口测试
  • 【QT】QSS
  • VMware虚拟机安装Win7专业版保姆级教程(附镜像包)
  • 万字长文解读深度学习——ViT、ViLT、DiT
  • MATLAB中的控制系统工具箱:深入指南与实践应用
  • c++ 包装器
  • Git常用命令(记录)
  • 【Android笔记】Android Studio打包 提示Invalid keystore format
  • Cesium 获取BBOX
  • SprinBoot+Vue网络商城海鲜市场的设计与实现
  • uniapp 发布苹果IOS详细流程,包括苹果开发者公司账号申请、IOS证书、.p12证书文件等
  • 【区块链通用服务平台及组件】微言科技数据智能中台
  • [网络]TCP/IP五层协议之应用层,传输层(1)
  • okhttp 报java.lang.IllegalStateException: closed
  • 为什么矩阵特征值之和等于主对角线元素之和,特征值乘积等于行列式值
  • 对话世优科技CEO纪智辉:AI模型让数字人发展按下加速键
  • 基于STM32的汽车仪表显示系统:集成CAN、UART与I2C总线设计流程
  • 【RAG】RAG再进化?基于长期记忆的检索增强生成新范式-MemoRAG
  • 盘古信息IMS 驱动智能工厂建设,助力制造企业降本增效
  • 力扣第79题 单词搜索
  • SprinBoot+Vue门诊管理系统的设计与实现
  • OceanBase 企业版OMS 4.2.3的使用
  • C语言 | Leetcode C语言题解之第391题完美矩形
  • MySQL:两阶段提交