数据科学和机器学习的“看家兵器”——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