当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame drop_duplicates方法用法及代码示例


Pandas 的 DataFrame.drop_duplicates(~) 方法返回删除了重复行的 DataFrame。

参数

1.subset | stringlist | optional

用于识别重复项的列。默认情况下,使用所有列。

2. keep | stringboolean | optional

如何处理重复行:

意义

"first"

仅保留第一个出现的位置,并删除其余的位置。

"last"

仅保留最后一个出现的位置,并删除第一个出现的位置。

False

删除所有重复项。

默认情况下,keep="first"

3. inplace | boolean | optional

  • 如果是True,那么该方法将直接修改源DataFrame,而不是创建新的DataFrame。

  • 如果是False,则将创建并返回一个新的DataFrame。

默认情况下,inplace=False

4. ignore_index | boolean | optional

  • 如果 True ,则返回的 DataFrame 将具有索引标签 01 、 ...、 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"] 将它们声明为重复项,这在检查重复项时只会考虑列 AC

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 已被修改。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | drop_duplicates method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。