Pandas 的 DataFrame.drop_duplicates(~)
方法返回删除了重复行的 DataFrame。
参数
1.subset
| string
或 list
| optional
用于识别重复项的列。默认情况下,使用所有列。
2. keep
| string
或 boolean
| optional
如何处理重复行:
值 |
意义 |
---|---|
|
仅保留第一个出现的位置,并删除其余的位置。 |
|
仅保留最后一个出现的位置,并删除第一个出现的位置。 |
|
删除所有重复项。 |
默认情况下,keep="first"
。
3. inplace
| boolean
| optional
-
如果是
True
,那么该方法将直接修改源DataFrame,而不是创建新的DataFrame。 -
如果是
False
,则将创建并返回一个新的DataFrame。
默认情况下,inplace=False
。
4. ignore_index
| boolean
| optional
-
如果
True
,则返回的 DataFrame 将具有索引标签0
、1
、 ...、n-1
,其中n
是返回的 DataFrame 的行数。 -
如果
False
,则返回的 DataFrame 将保留其原始索引。
默认情况下,ignore_index=False
。
返回值
根据指定参数删除重复行的DataFrame
。如果是 inplace=True
,则不会返回任何内容,因为源 DataFrame 被直接修改。
例子
基本用法
考虑以下 DataFrame :
df = pd.DataFrame({"A":[2,2,2], "B":[4,5,4], "C":[2,8,2]})
df
A B C
0 2 4 2
1 2 5 8
2 2 4 2
第一行和第三行是重复的。要删除重复的行:
df.drop_duplicates()
A B C
0 2 4 2
1 2 5 8
删除重复的行,仅考虑某些列
考虑以下 DataFrame :
df = pd.DataFrame({"A":[2,2], "B":[4,3], "C":[2,2]})
df
A B C
0 2 4 2
1 2 3 2
在这里,第一行和第二行并不完全重复( [2,4,2]
与 [2,3,2]
)。我们仍然可以通过指定 subset=["A","C"]
将它们声明为重复项,这在检查重复项时只会考虑列 A
和 C
:
df.drop_duplicates(subset=["A","C"])
A B C
0 2 4 2
处理重复项的不同方法
正如 keep="first" || "last" || "False"
所指定的,我们可以通过三种方式处理重复项。
考虑以下 DataFrame :
df = pd.DataFrame({"A":[2,9,2], "B":[4,9,4], "C":[2,9,2]})
df
A B C
0 2 4 2
1 9 9 9
2 2 4 2
只保留第一次出现的情况
df.drop_duplicates(keep="first") # This is the default behaviour
A B C
0 2 4 2
1 9 9 9
请注意第一次出现的重复项是如何保持原样的。
只保留最后一次出现的情况
df.drop_duplicates(keep="last")
A B C
1 9 9 9
2 2 4 2
请注意最后一次出现的重复项是如何保持原样的。
删除所有出现的情况
df.drop_duplicates(keep=False)
A B C
1 9 9 9
请注意所有重复项是如何被删除的。
就地删除重复行
要就地删除重复行,请设置 inplace=True
。这将直接从源 DataFrame 中删除重复行,而不是创建新行。
考虑以下 DataFrame ;
df = pd.DataFrame({"A":[2,9,2], "B":[4,9,4], "C":[2,9,2]})
df
A B C
0 2 4 2
1 9 9 9
2 2 4 2
我们使用 inplace=True
删除所有重复行:
df.drop_duplicates(inplace=True)
df
A B C
0 2 4 2
1 9 9 9
如输出所示,源 DataFrame 已被修改。
相关用法
- Python PySpark DataFrame drop方法用法及代码示例
- Python PySpark DataFrame dropDuplicates方法用法及代码示例
- Python Pandas DataFrame drop方法用法及代码示例
- Python Pandas DataFrame droplevel方法用法及代码示例
- Python PySpark DataFrame dropna方法用法及代码示例
- Python Pandas DataFrame dropna方法用法及代码示例
- Python PySpark DataFrame dtypes属性用法及代码示例
- Python Pandas DataFrame dtypes属性用法及代码示例
- Python Pandas DataFrame duplicated方法用法及代码示例
- Python Pandas DataFrame diff方法用法及代码示例
- Python Pandas DataFrame dot方法用法及代码示例
- Python Pandas DataFrame describe方法用法及代码示例
- Python PySpark DataFrame describe方法用法及代码示例
- Python Pandas DataFrame div方法用法及代码示例
- Python PySpark DataFrame distinct方法用法及代码示例
- Python Pandas DataFrame empty属性用法及代码示例
- Python Pandas DataFrame pop方法用法及代码示例
- Python Pandas DataFrame nsmallest方法用法及代码示例
- Python Pandas DataFrame sample方法用法及代码示例
- Python Pandas DataFrame items方法用法及代码示例
- Python Pandas DataFrame max方法用法及代码示例
- Python Pandas DataFrame swaplevel方法用法及代码示例
- Python Pandas DataFrame agg方法用法及代码示例
- Python Pandas DataFrame copy方法用法及代码示例
- Python Pandas DataFrame pow方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | drop_duplicates method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。