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

数据科学和机器学习的“看家兵器”——pandas模块 之四

目录

  4.4 pandas 数据处理与转换

  一、课程目标

  二、修改行标签和修改列标签

  (一)修改列标签

  (二)修改行标签

  三、查找和替换数据

  (一)一对一替换

  (二)多对一替换

  (三)多对多替换

  四、数据处理

  (一)插入数据

  (二)删除数据

  五、处理数据表中的缺失值

  (一)查看缺失值

  (二)删除缺失值

  (三)缺失值的补充

  六、处理重复数据

  (一)删除重复行

  (二)获取某一列数据的唯一值

  七、数据的排序操作

  (一)使用 sort_values () 函数排序

  (二)使用 rank () 函数获取数据排序

  八、筛选数据

  (一)通过比较运算筛选

  (二)多条件筛选

  九、课程回顾和小结


  4.4 pandas 数据处理与转换

  一、课程目标

  本次课程主要围绕 pandas 的数据处理与转换功能展开,通过理论讲解和案例分析,让学员掌握修改标签、查找替换数据、处理缺失值和重复数据、排序和筛选等数据处理技巧。学员学完本次课程后,能够熟练使用 pandas 进行数据的清洗、转换和预处理。

  二、修改行标签和修改列标签

  在数据分析过程中,我们经常需要修改 DataFrame 的行标签或列标签,以提高数据的可读性或便于后续操作。

  (一)修改列标签

  pandas 提供了多种方法来修改列标签。

import pandas as pd
import numpy as np# 创建示例数据
np.random.seed(42)
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],'Age': [25, 30, 35, 40, 45],'Gender': ['F', 'M', 'M', 'M', 'F'],'Score': [85, 90, 78, 92, 88]
}
df = pd.DataFrame(data)print("原始数据:")
print(df)# 方法一:直接修改列属性
df.columns = ['姓名', '年龄', '性别', '分数']
print("\n修改列标签后:")
print(df)# 方法二:使用rename()方法
df = df.rename(columns={'姓名': '学生姓名', '分数': '成绩'})
print("\n使用rename()方法修改列标签后:")
print(df)# 方法三:修改部分列标签
df = df.rename(columns={'年龄': '学生年龄', '性别': '学生性别'})
print("\n修改部分列标签后:")
print(df)

  这个案例展示了三种修改列标签的方法:直接修改列属性、使用rename()方法和修改部分列标签。rename()方法更为灵活,可以选择性地修改部分列标签。

  (二)修改行标签

  修改行标签的方法与修改列标签类似。

# 重置索引
df = df.reset_index(drop=True)
print("\n重置索引后:")
print(df)# 方法一:直接修改索引属性
df.index = ['A', 'B', 'C', 'D', 'E']
print("\n修改行标签后:")
print(df)# 方法二:使用rename()方法
df = df.rename(index={'A': 'a', 'B': 'b'})
print("\n使用rename()方法修改行标签后:")
print(df)# 方法三:设置某一列为索引
df = df.set_index('学生姓名')
print("\n设置学生姓名为索引后:")
print(df)

  这个案例展示了三种修改行标签的方法:直接修改索引属性、使用rename()方法和设置某一列为索引。设置某一列为索引是常见的操作,可以方便后续的数据查询和处理。

  三、查找和替换数据

  在数据分析过程中,我们经常需要查找特定的数据并进行替换。pandas 提供了灵活的查找和替换功能。

  (一)一对一替换

  一对一替换是指将一个值替换为另一个值。

# 重置索引和列名
df = df.reset_index()
df.columns = ['姓名', '年龄', '性别', '成绩']
print("原始数据:")
print(df)# 替换单个值
df_replace = df.replace('M', '男')
print("\n将'M'替换为'男'后:")
print(df_replace)# 替换数值
df_replace = df_replace.replace(35, 36)
print("\n将35替换为36后:")
print(df_replace)

  这个案例展示了如何进行一对一替换,使用replace()方法可以轻松实现。

  (二)多对一替换

  多对一替换是指将多个不同的值替换为同一个值。

# 多对一替换
df_replace = df.replace(['Alice', 'Bob', 'Charlie'], 'Student')
print("\n将'Alice'、'Bob'、'Charlie'替换为'Student'后:")
print(df_replace)# 使用字典进行多对一替换
df_replace = df.replace({'M': '男', 'F': '女'})
print("\n使用字典进行多对一替换后:")
print(df_replace)

  这个案例展示了两种多对一替换的方法:使用列表和使用字典。使用字典可以更清晰地指定替换规则。

  (三)多对多替换

  多对多替换是指将多个值替换为另外多个值。

# 多对多替换
df_replace = df.replace({'Alice': 'A', 'Bob': 'B', 'Charlie': 'C', 'David': 'D', 'Eve': 'E'})
print("\n多对多替换后:")
print(df_replace)# 替换数值范围
d

相关文章:

  • 上线前测试组发现问题较多。开发总结
  • 数控机床控制单元技术方案:基于EFISH-SCB-RK3588/SAIL-RK3588的赛扬N100/N150国产化替代全场景解析
  • c++从入门到精通(四)--动态内存,模板与泛型编程
  • 小白入门:GitHub 远程仓库使用全攻略
  • 印度全印度游戏联合会(AIGF)介绍与用途
  • 基于YOLOv5的葡萄病害智能识别系统开发实践
  • JSX语法介绍
  • Java并发编程面试题总结
  • 面向对象编程 接口vs抽象类的区别?
  • 如何快速入门-衡石科技分析平台
  • (十九)Java集合框架深度解析:从基础到高级应用
  • 第28周——InceptionV1实现猴痘识别
  • K8S Gateway AB测试、蓝绿发布、金丝雀(灰度)发布
  • next.js实现项目搭建
  • 023-C语言预处理详解
  • 致远OA周报日报管理应用包【附百度网盘下载链接,官方售价8K】
  • 采用sherpa-onnx 实现 ios语音唤起的调研
  • 机器学习 --- KNN算法
  • uniapp在APP上如何使用websocket--详解
  • 驱动-定时-秒-字符设备
  • 江苏省委组织部副部长高颜已任南京市委常委、组织部部长
  • 证监会:2024年依法从严查办证券期货违法案件739件,作出处罚决定592件、同比增10%
  • 商务部:中方敦促美方尽快停止232关税措施
  • 苏轼“胡为适南海”?
  • 病重老人被要求亲自取钱在农业银行门口去世?株洲警方介入
  • 秘鲁总统任命前司法部长阿拉纳为新总理