📅  最后修改于: 2023-12-03 15:22:38.895000             🧑  作者: Mango
在数据分析和处理中,经常会遇到需要判断一列中是否存在重复值的情况。而针对这种情况,可以使用 Pandas 的 duplicated
方法来获取列中每个元素是否为重复值的布尔值。
DataFrame.duplicated(subset=None, keep='first')
subset
:可选参数,用于指定在哪些列中查找重复值。默认值为 None
,则在整个 DataFrame 中查找重复值。keep
:可选参数,表示保留哪个重复值。可选值为 first
、last
和 False
,默认为 first
。其中,first
表示保留第一个出现的重复值,last
表示保留最后一个出现的重复值,False
表示保留所有的重复值。假设我们有如下 DataFrame:
| | Name | Age | Gender | |---:|:--------|----:|:-------| | 0 | Alice | 25 | F | | 1 | Bob | 30 | M | | 2 | Charlie | 25 | M | | 3 | Alice | 25 | F | | 4 | David | 20 | M |
我们可以使用 duplicated
方法来查找 Name 列中是否有重复值:
import pandas as pd
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'David'],
'Age': [25, 30, 25, 25, 20],
'Gender': ['F', 'M', 'M', 'F', 'M']
})
df['Name'].duplicated()
输出结果为:
0 False
1 False
2 False
3 True
4 False
Name: Name, dtype: bool
可以看到,输出结果是一个布尔型的 Series,表示每个元素是否为重复值。其中,第 3 个元素为重复值。
如果我们想要查找整个 DataFrame 中的重复值,可以直接使用 duplicated
方法:
df.duplicated()
输出结果为:
0 False
1 False
2 False
3 True
4 False
dtype: bool