Pandas数据清洗是确保数据质量的关键步骤,可以有效处理缺失值、重复数据和异常值。
在Python的Pandas库中,DataFrame是一个非常重要的数据结构,用于处理表格数据。它类似于Excel电子表格或SQL数据库中的表,可以存储不同类型的列数据,包括数字、字符串、布尔值等。
处理重复数据
重复值会导致数据模型出现数据偏差和冗余信息,处理重复值是数据清洗的一个重要步骤。pandas提供了检查重复数据和删除重复数据的功能。
1. 检测重复数据
使用 DataFrame.duplicated() 方法可以可以检测重复行,返回一个布尔型的序列,表示每一行是否是重复的。默认情况下,它会标记除了第一次出现之外的所有重复行。
# 导入 pandas 库
import pandas as pd
# 创建字典作为模拟数据
data = {'A列': [1, 2, 2, 3, 2, 1], 'B列': [1, 1, 2, 3, 2, 1]}
# 将字典存入 DataFrame 对象中
df = pd.DataFrame(data)
# 检测重复行
duplicate = df.duplicated()
print(duplicate)
0 False
1 False
2 False
3 False
4 True
5 True
dtype: bool
2. 删除重复数据
使用 DataFrame.drop_duplicates() 方法可以删除重复行。这个方法默认保留第一次出现的行,但可以通过参数调整保留最后一次出现的行或任何特定的行。
- 删除重复行,只保留第一次出现的行。
# 导入 pandas 库
import pandas as pd
# 创建字典作为模拟数据
data = {'A列': [1, 2, 2, 3, 2, 1], 'B列': [1, 1, 2, 3, 2, 1]}
# 将字典存入 DataFrame 对象中
df = pd.DataFrame(data)
# 删除重复行,只保留第一次出现的行
drop_duplicates = df.drop_duplicates()
print(drop_duplicates)
运行结果:
- 删除所有重复行,只保留原始数据中唯一的行。
# 导入 pandas 库
import pandas as pd
# 创建字典作为模拟数据
data = {'A列': [1, 2, 2, 3, 2, 1], 'B列': [1, 1, 2, 3, 2, 1]}
# 将字典存入 DataFrame 对象中
df = pd.DataFrame(data)
# 删除所有重复行,只保留原始数据中唯一的行
drop_duplicates = df.drop_duplicates(keep=False)
print(drop_duplicates)
运行结果:
3. 指定某些列来检查重复,作为删除重复行的条件
通过 subset 参数指定某些列来检查重复项。保留第一次出现的行。
# 导入 pandas 库
import pandas as pd
# 创建字典作为模拟数据
data = {'A列': [1, 1, 2, 3, 2, 3], 'B列': [1, 1, 2, 2, 2, 3], 'C列': [6, 5, 4, 3, 2, 1]}
# 将字典存入 DataFrame 对象中
df = pd.DataFrame(data)
# 指定A列、B列来检查重复项,并进行重复行删除
drop_duplicates = df.drop_duplicates(subset=['A列', 'B列'])
print(drop_duplicates)
运行结果: