在Python中刪除所有重複行的操作方法

2024-04-20 00:00:48 发布

您现在位置:Python中文网/ 问答频道 /正文

pandasdrop_duplicates函数非常适合“取消”数据帧。但是,要传递的关键字参数之一是take_last=Truetake_last=False,而我想删除在列子集上重复的所有行。这可能吗?

    A   B   C
0   foo 0   A
1   foo 1   A
2   foo 1   B
3   bar 1   A

例如,我想删除与列AC匹配的行,因此这应该删除行0和1。


Tags: 数据函数falsetrue参数foobar关键字
3条回答

现在在pandas中使用drop_duplicates和keep参数就容易多了。

import pandas as pd
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})
df.drop_duplicates(subset=['A', 'C'], keep=False)

如果要将结果存储在另一个数据集中:

df.drop_duplicates(keep=False)

或者

df.drop_duplicates(keep=False, inplace=False)

如果需要更新同一数据集:

df.drop_duplicates(keep=False, inplace=True)

上面的示例将删除所有重复项并保留一个,类似于SQL中的DISTINCT *

只想在本关于drop_duplicates的回答中加上:

keep:{'first','last',False},默认'first'

  • 第一次:删除除第一次出现以外的重复项。

  • last:除去最后一次出现的重复项。

  • 错误:删除所有重复项。

因此,将keep设置为False,我们将为您提供所需的答案。

DataFrame.drop_duplicates(*args, **kwargs) Return DataFrame with duplicate rows removed, optionally only considering certain columns

Parameters: subset : column label or sequence of labels, optional Only consider certain columns for identifying duplicates, by default use all of the columns keep : {‘first’, ‘last’, False}, default ‘first’ first : Drop duplicates except for the first occurrence. last : Drop duplicates except for the last occurrence. False : Drop all duplicates. take_last : deprecated inplace : boolean, default False Whether to drop duplicates in place or to return a copy cols : kwargs only argument of subset [deprecated] Returns: deduplicated : DataFrame

相关问题 更多 >