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

综合案例:Python 数据处理——从Excel文件到数据分析

适合对象:零编程基础的大一新生
课程目标:掌握使用Python处理Excel数据的基本方法,包括读取、清洗、处理和保存数据,为进一步的数据分析打下基础。

课程大纲

模块1:Pandas入门——数据分析的利器

1.1 什么是Pandas?

  • 生活类比:就像Excel是处理表格数据的工具一样,Pandas是Python中处理表格数据的专业库。
  • 编程场景:处理Excel、CSV等格式的结构化数据。

1.2 为什么选择Pandas?

  • 易用性:语法简洁,学习曲线平缓。
  • 高效性:基于NumPy,性能优秀。
  • 功能全面:涵盖数据分析的各个环节。
  • 广泛应用:数据科学、金融分析、商业智能等领域。

1.3 安装和导入Pandas

  • 安装:在命令行中运行以下命令之一:
    # 普通安装
    pip install pandas# 使用清华源安装(推荐,速度更快)
    pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple# 升级安装
    pip install --upgrade pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 导入
    import pandas as pd
    

1.4 动手实验

  • 任务:导入pandas库并检查版本。
  • 提示:使用pd.__version__查看版本。
  • 参考答案:
    import pandas as pd
    print(pd.__version__)
    

模块2:读取Excel数据——让Python认识你的数据

2.1 数据结构简介

  • DataFrame:二维表格数据结构,类似Excel表格。
  • Series:一维数组,类似列表或Excel中的一列。

2.2 读取Excel文件

  • 核心函数pd.read_excel()
    数据示例
    下表展示了销售数据.xlsx文件中的前10条内容。完整内容打开百度网盘下载(提取码: 2afy)

    | 客户ID | 产品名称 | 销售数量 | 销售价格 | 销售日期 |
    |--------|----------|----------|----------|----------|
    | 123456 | 手机     | 20       | 3000     | 2023/1/15 0:00 |
    | 654321 | 电脑     | 15       | 5000     | 2023/2/20 0:00 |
    | 789012 | 平板     | 18       | 2500     | 2023/3/10 0:00 |
    | 345678 | 耳机     | 30       | 500      | 2023/4/5 0:00  |
    | 987654 | 键盘     | 25       | 300      | 2023/5/12 0:00 |
    | 456789 | 鼠标     | 40       | 100      | 2023/6/18 0:00 |
    | 234567 | 充电器   | 50       | 80       | 2023/7/25 0:00 |
    | 321098 | 硬盘     | 12       | 800      | 2023/8/30 0:00 |
    | 876543 | 显示器   | 8        | 1500     | 2023/9/15 0:00 |
    | 543210 | 音箱     | 10       | 399.99   | 2023/10/1 0:00 |
    | ……     | ……       | ……       | ……       | ……       |
    
  • 示例演示

    import pandas as pd# 读取Excel文件
    df = pd.read_excel('D:/销售数据.xlsx')# 显示前5行数据
    print(df.head(5))
    

    输出结果:

    客户 ID 产品名称  销售数量    销售价格       销售日期
    0  123456   手机    20  3000.0 2023-01-15
    1  654321   电脑    15  5000.0 2023-02-20
    2  789012   平板    18  2500.0 2023-03-10
    3  345678   耳机    30   500.0 2023-04-05
    4  987654   键盘    25   300.0 2023-05-12
    
  • 代码详解

    • pd.read_excel():pandas读取Excel文件的函数
      • 自动识别Excel文件格式(.xlsx或.xls)
      • 将Excel数据转换为DataFrame对象便于处理
    • df.head(5):显示数据框的前5行
      • 默认显示前5行,也可以指定其他数字,如head(3)显示前3行
      • 用于快速预览数据结构和内容

2.3 常用参数说明

  • file_path:文件路径。
  • sheet_name:工作表名称(默认为第一个工作表)。
  • header:指定哪一行作为列名(默认为0,即第一行)。

2.4 互动练习

  • 任务:读取Excel文件并显示前3行数据。
  • 提示:使用head(3)方法。
  • 参考答案:
    import pandas as pd
    df = pd.read_excel('D:/销售数据.xlsx')
    print(df.head(3))
    

模块3:数据清洗——处理不完美的数据

3.1 检查缺失值

  • 核心方法isnull()any()

  • 示例演示

    # 检查数据中是否存在缺失值
    missing_values = df.isnull().any(axis=1)# 输出存在缺失值的数据行
    print(df[missing_values])
    
  • 代码详解

    • df.isnull():创建一个布尔矩阵,标记所有缺失值(NaN)的位置
      • 对于每个单元格,如果是缺失值则返回 True,否则返回 False
    • .any(axis=1):沿着行方向(axis=1)检查每一行
      • 如果一行中任何一个单元格是缺失值,整行就标记为 True
      • 如果一行中没有任何缺失值,整行就标记为 False
    • missing_values:得到一个布尔序列,长度等于数据框的行数
      • 每个元素表示对应行是否包含缺失值
    • df[missing_values]:使用布尔索引筛选出包含缺失值的行
      • 只显示那些至少有一个缺失值的完整行

3.2 填充缺失值

  • 核心方法fillna()
  • 示例演示
    # 将缺失值统一填充为指定值
    df = df.fillna(99999)# 输出填充结果
    print(df[missing_values])
    

3.3 删除重复行

  • 核心方法duplicated()drop_duplicates()

  • 示例演示

    # 检查并打印重复行
    duplicated_rows = df.duplicated(keep=False)
    if duplicated_rows.any():print("重复行的行号及内容:")print(df[duplicated_rows])# 删除重复行
    df = df.drop_duplicates()# 输出删除重复行后的数据行数
    print(len(df))
    
  • 代码详解

    • drop_duplicates()是pandas的删除重复行方法
      • 默认情况下,它会比较所有列的值来判断是否为重复行
      • 如果多行完全相同,只保留第一行,删除后面的重复行
    • duplicated(keep=False)参数说明:
      • keep=False表示所有重复行都标记为True,便于显示所有重复项

3.4 数据格式统一

  • 核心方法round()

  • 示例演示

    # 统一数值列的数据格式,四舍五入到指定小数位
    df['销售价格'] = df['销售价格'].round(2)# 输出处理后的前5行数据
    print(df.head(5))
    
  • 代码详解

    • df['销售价格']:选择数据框中的"销售价格"列
      • 这是pandas的列选择语法,类似于Excel中选择一列
    • round(2):对选中的列进行四舍五入处理
      • round()是pandas的数值处理方法
      • 参数2表示保留2位小数
      • 会对列中的每个数值进行四舍五入

3.5 综合练习

  • 任务:处理一个包含缺失值和重复行的销售数据文件。
  • 提示:按顺序执行检查缺失值、填充缺失值、删除重复行、统一数据格式等操作。
  • 参考答案:
    import pandas as pd# 读取数据
    df = pd.read_excel('D:/销售数据.xlsx')# 检查缺失值
    missing_values = df.isnull().any(axis=1)
    print("包含缺失值的行:")
    print(df[missing_values])# 填充缺失值
    df = df.fillna(99999)# 删除重复行
    df = df.drop_duplicates()# 统一数据格式
    df['销售价格'] = df['销售价格'].round(2)# 显示处理结果
    print("处理后的前5行数据:")
    print(df.head(5))
    

模块4:数据筛选与保存——提取你需要的数据

4.1 列选择

  • 单列选择df['列名']
  • 多列选择df[['列名1', '列名2']]
  • 示例演示
    # 选择单列
    product_names = df['产品名称']
    print(product_names.head())# 选择多列
    selected_columns = df[['产品名称', '销售数量']]
    print(selected_columns.head())
    

4.2 保存数据到Excel

  • 核心函数to_excel()

  • 示例演示

    # 筛选需要的列
    df_filtered = df[['产品名称', '销售数量']]# 保存为新文件
    df_filtered.to_excel('D:/筛选结果.xlsx', index=False)
    
  • 代码详解

    • index=False:参数设置,不保存行索引
      • 如果设为True,会在Excel中多出一列显示行号(0, 1, 2…)
      • 设为False可以避免在Excel中显示不必要的行索引

4.3 参数说明

  • file_path:保存的文件路径。
  • index:是否保存行索引(通常设为False)。

4.4 综合挑战

  • 任务:从销售数据中提取产品名称和销售数量两列,保存为新文件。根据公式「销售总额 = 销售数量 × 销售价格」计算新的「销售总额」列,并将其添加到DataFrame中,最后将包含销售总额的数据保存到新文件。
  • 提示:使用列选择和保存方法。
  • 参考答案:
    import pandas as pd# 读取数据
    df = pd.read_excel('D:/销售数据.xlsx')# 筛选需要的列
    df_filtered = df[['产品名称', '销售数量']]# 保存为新文件
    df_filtered.to_excel('D:/产品销售数量.xlsx', index=False)
    
    # 根据公式「销售总额 = 销售数量 × 销售价格」计算新的「销售总额」列,并将其添加到DataFrame中
    df['销售总额'] = df['销售数量'] * df['销售价格']# 将包含销售总额的数据保存到新文件
    df.to_excel('D:/处理结果_含销售总额.xlsx', index=False)print("数据已保存到:D:/处理结果_含销售总额.xlsx")
    

模块5:完整案例实践——构建数据处理流水线

5.1 案例目标
构建一个完整的数据处理流水线,包括读取、清洗、处理和保存数据。

5.2 完整代码示例

import pandas as pd# (1)读取Excel文件
df = pd.read_excel('D:/销售数据.xlsx')
print("原始数据前5行:")
print(df.head(5))# (2)检查缺失值
missing_values = df.isnull().any(axis=1)
if missing_values.any():print("包含缺失值的行:")print(df[missing_values])
else:print("数据中没有缺失值")# (3)填充缺失值
df = df.fillna(99999)
print("填充缺失值后的数据:")
print(df[missing_values])# (4)删除重复行
original_rows = len(df)
df = df.drop_duplicates()
new_rows = len(df)
print(f"删除了{original_rows - new_rows}行重复数据")# (5)统一数据格式
df['销售价格'] = df['销售价格'].round(2)
print("统一格式后的前5行数据:")
print(df.head(5))# (6)筛选并保存数据
df_filtered = df[['产品名称', '销售数量']]
df_filtered.to_excel('D:/处理结果.xlsx', index=False)
print("数据已保存到:D:/处理结果.xlsx")# (7)根据公式「销售总额 = 销售数量 × 销售价格」计算新的「销售总额」列,并将其添加到DataFrame中
df['销售总额'] = df['销售数量'] * df['销售价格']
df.to_excel('D:/处理结果_含销售总额.xlsx', index=False)
print("数据已保存到:D:/处理结果_含销售总额.xlsx")
  • 代码详解
    • df['销售总额'] = df['销售数量'] * df['销售价格']:根据公式计算销售总额并添加新列
      • 使用pandas的向量化操作,自动对每行的销售数量和销售价格进行相乘运算
      • 将计算结果作为新列"销售总额"添加到DataFrame中
    • df.to_excel('D:/处理结果_含销售总额.xlsx', index=False):将包含新列的完整数据保存到Excel文件
      • index=False表示不保存行索引到Excel文件中
      • 如果文件已存在,将被覆盖;如果不存在,将创建新文件

5.3 代码说明

  • 每个步骤都有明确的注释,便于理解。
  • 添加了条件判断,使程序更加健壮。
  • 输出关键信息,便于跟踪处理过程。

课程总结与作业

  1. 总结

    • Pandas是处理结构化数据的强大工具。
    • 数据处理流程包括读取、清洗、处理和保存。
    • 缺失值、重复行是常见数据问题,需要妥善处理。
    • 通过列选择可以提取需要的数据子集。
  2. 课后作业

    • 作业1:使用提供的学生成绩Excel文件,检查是否存在缺失值,如果存在则填充为0。
    • 作业2:从处理后的数据中筛选出数学成绩大于80分的学生记录,保存为新文件。
  3. 参考资料

    • Pandas 官方文档:Pandas用户指南
    • Pandas API参考:Pandas API
  4. 软件安装包下载地址

    • 下载地址(提取码: ygrr)

课程特色

  • 生活化类比:用Excel等常见工具类比,降低学习门槛。
  • 逐步引导:从基础概念到完整案例,层层递进。
  • 实战驱动:通过真实数据处理任务强化应用能力。
  • 避坑指南:提前预警缺失值、重复行等常见数据问题。
http://www.dtcms.com/a/549929.html

相关文章:

  • Java基础——常用API2
  • 自己做的网站能上传到凡科吗网站站点多少钱
  • 手机如何网站成都哪里好玩
  • huggingface下载相关
  • rollup == JavaScript 打包器
  • ROS2 Windows安装
  • 四川省建设厅招标网站网站与网页 主页的概念及它们的区别
  • Unity编辑器扩展入门篇 - Unity Inspector自定义脚本菜单
  • Redis(一)——数据类型一
  • 专业网站建设分为8步代注册公司要多少钱
  • 网站建设 网页设计 网站制作南宁哪个网络公司建网站好
  • Xilinx官网评估板链接
  • 【参赛心得】我的 HarmonyOS 开发入门与参赛之路
  • 答题PK小程序:在竞技与学习的夹缝中狂奔
  • 网站书店建设背景wordpress主页删除
  • 非蛋白氨基酸
  • Rust 移动语义(Move Semantics):内存安全的隐形守护者
  • 怎么用flash做网站app 网站 同时做
  • 摄影网站规划设计书建设官网电话号码
  • 性价比高的电磁阀生产厂家
  • WPF编译出现包问题
  • CZ个人持仓不足1%社区BNB做多情绪高涨,平台XBIT展现去中心化理念
  • 查网站的关键词排名吗重庆铜梁网站建设报价
  • STM32中 ESP8266 MQTT ModBus RS482 介绍
  • 代理分佣后台网站开发品牌网站建设制作
  • 网站建设 汇卓湖南做网站 磐石网络引领
  • 网络营销工程师有用吗优化设计七年级上册数学答案
  • 一文读懂计算机网络参考模型(二)
  • ALIGN 和 ROUND_UP 宏的原理与区别详解
  • 河南智慧团建官网企业网站建设优化