熊猫
drop_duplicates
函数非常适合统一数据帧。但是,要传递的关键字参数之一是take_last=True
或take_last=False
,而我希望删除列子集中所有重复的行。这有可能吗?
A B C
0 foo 0 A
1 foo 1 A
2 foo 1 B
3 bar 1 A
例如,我想删除与列A
和C
匹配的行,因此这应该删除行0和1。
如果希望结果存储在另一个数据集中:
df.drop_duplicates(keep=False)
或
df.drop_duplicates(keep=False, inplace=False)
如果需要更新相同的数据集:
df.drop_duplicates(keep=False, inplace=True)
以上示例将删除所有重复并保留一个,类似于SQL中的DISTINCT*
我只想在Ben关于drop_duplicates的回答中添加以下内容:
保留
:{'first','last',False},默认值为'first'
>
第一:除去第一次出现的重复项。
最后:删除除最后一次出现之外的重复项。
False:删除所有重复项。
因此,将保持
设置为False将为您提供所需的答案。
DataFrame.drop_duplicates(*args,**kwargs)返回删除重复行的DataFrame,可以选择仅考虑某些列
参数:子集:列标签或标签序列,可选地只考虑某些列来标识重复,默认情况下使用所有列保持:{“第一”、“最后”、“false }”、“默认”第一个:删除第一次出现时的重复。最后:删除除最后一次出现之外的重复项。False:删除所有重复项。take_last:deprecated in place:boolean,默认为False是就地删除重复项还是返回副本cols:kwargs only subset[deprecated]的参数返回:已删除重复项:DataFrame
现在,使用drop_duplicates和keep参数,在pandas中,这要容易得多。
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)
问题内容: 这个问题已经在这里有了答案 : 在MySQL中删除重复的行 (25个答案) 3个月前关闭。 如何从MySQL表中删除所有重复数据? 例如,具有以下数据: 我会使用,如果它是一个查询。 我该怎么做才能只删除重复项并仅保留每个记录一个? 问题答案: 编辑者警告:此解决方案的计算效率低下,可能会降低大型表的连接。 注意:您 需要 首先在表的 测试副本 上执行此操作! 完成此操作后,我发现,除
我需要删除所有行而不留下任何唯一记录。如果存在重复,则删除所有匹配的行。Criteria是C列,如果C列中存在任何重复记录,则删除整行(包括unique)。
问题内容: 我在一个表中有多组重复项(一个表有3条记录,另一个表有2条记录,等等)-存在多于1行的多行。 以下是我想删除它们的方法,但是无论有多少重复,我都必须运行脚本: 这在一定程度上效果很好。我需要为每组重复项运行此命令,然后它只会删除1(这是我现在需要的全部)。 问题答案: 如果表上有键列,则可以使用它来唯一地标识表中的“不同”行。 只需使用子查询来标识唯一行的ID列表,然后删除此集合之外的
问题内容: 如何从MySQL表中删除所有重复数据? 例如,具有以下数据: 我会使用,如果它是一个查询。 我该怎么做才能只删除重复项并仅保留每个记录一个? 问题答案: 编辑者警告:此解决方案的计算效率低下,可能会降低大型表的连接。 注意:您 需要 首先在表的 测试副本 上执行此操作! 完成此操作后,我发现,除非也包含,否则它将删除表中的每一行。 如果要使行的值保持最低,请执行以下操作: 如果要保留最
对于包含10列的数据框,如何删除索引2以上的列。数据框如下所示: 任务是删除列3-列10
问题内容: 我将如何使用python检查列表并删除所有重复项?我不需要指定重复项是什么- 我希望代码找出是否存在重复项,如果有则将其删除,每个重复项仅保留一个实例。如果列表中有多个重复项,它也必须起作用。 例如,在下面的代码中,列表lseparatedOrbList有12个项目-一项被重复六次,一项被重复五次,并且只有一个实例。我希望它更改列表,因此只有三项-每一项,并且它们之前出现的顺序相同。我