看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas
中的 drop_duplicates()
方法用于移除 DataFrame 或 Series 中的重复行。它适用于 DataFrame 和 Series 数据类型。
DataFrame.drop_duplicates(subset=None,
keep='first',
inplace=False,
ignore_index=False)
Series.drop_duplicates(*, keep='first',
inplace=False,
ignore_index=False)
Index.drop_duplicates(*, keep='first')
subset: 列表或单个列标签,默认为 None。
keep: {'first', 'last', False}, 默认为 'first'。
inplace: 布尔值,默认为 False。
ignore_index: 布尔值,默认为 False。
返回一个 DataFrame 或 Series,还支持 Index 对象,取决于输入类型。如果 inplace=True
,则返回 None。
drop_duplicates()
常用于清理数据,确保数据集没有重复项。例如,在合并多个数据源后,可能会有重复记录。或者在数据处理后,需要确保唯一性。
import pandas as pd
# 构造示例数据
data = {
'A': [1, 2, 2, 3, 4, 4, 4],
'B': ['a', 'b', 'b', 'c', 'd', 'd', 'd']
}
df = pd.DataFrame(data)
# 原始数据
print("原始数据:\n", df)
# 移除重复的行
df_deduplicated = df.drop_duplicates()
# 结果数据
print("移除重复后的数据:\n", df_deduplicated)
输出:
原始数据:
A B
0 1 a
1 2 b
2 2 b
3 3 c
4 4 d
5 4 d
6 4 d
移除重复后的数据:
A B
0 1 a
1 2 b
3 3 c
4 4 d
# 基于列 'A' 移除重复行
df_deduplicated_subset = df.drop_duplicates(subset=['A'])
# 结果数据
print("基于列 'A' 移除重复后的数据:\n", df_deduplicated_subset)
输出:
基于列 'A' 移除重复后的数据:
A B
0 1 a
1 2 b
3 3 c
4 4 d
# 保留最后出现的重复项
df_deduplicated_last = df.drop_duplicates(keep='last')
# 结果数据
print("保留最后出现重复项后的数据:\n", df_deduplicated_last)
输出:
保留最后出现重复项后的数据:
A B
0 1 a
2 2 b
3 3 c
6 4 d
# 删除所有重复项
df_no_duplicates = df.drop_duplicates(keep=False)
# 结果数据
print("删除所有重复项后的数据:\n", df_no_duplicates)
输出:
删除所有重复项后的数据:
A B
0 1 a
3 3 c
通过以上示例,展示了 drop_duplicates()
方法的基本使用和一些常见场景。这些示例帮助理解如何在不同的情况下移除重复数据。
更新时间:2024-07-23 18:15:52 标签:pandas python 重复 删除