数据科学和机器学习的“看家兵器”——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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波涛浪子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值