有条件地删除重复的pandas python

Posted

技术标签:

【中文标题】有条件地删除重复的pandas python【英文标题】:Conditional removing of duplicates pandas python 【发布时间】:2015-07-12 15:44:57 【问题描述】:

有没有办法在大约 10 列和 400,000 行的 pandas 数据框中有条件地删除重复项(特别是使用 drop_duplicates)?也就是说,我想让所有有 2 列的行都满足一个条件:如果 date (column) 和 store (column) # 的组合是唯一的,则保留行,否则,丢弃。

【问题讨论】:

你试过什么?有最终方便的if 语句,但是是的,这可能会有点混乱。您是否检查过文档中是否有此方法? 发布示例数据和预期输出总是有帮助的。 是的,我正在研究如何发布一些示例数据。 如果您需要代码格式化,只需缩进四个空格,或者只是复制粘贴它,我们中的一位将为您修复它(特别是如果它有大量数据)。 :) 【参考方案1】:

使用drop_duplicates 返回删除重复行的数据框,可选择仅考虑某些列

让初始数据框像

In [34]: df
Out[34]:
  Col1 Col2  Col3
0    A    B    10
1    A    B    20
2    A    C    20
3    C    B    20
4    A    B    20

如果您想从某些列中获取唯一的组合'Col1', 'Col2'

In [35]: df.drop_duplicates(['Col1', 'Col2'])
Out[35]:
  Col1 Col2  Col3
0    A    B    10
2    A    C    20
3    C    B    20

如果你想对所有列进行唯一的组合

In [36]: df.drop_duplicates()
Out[36]:
  Col1 Col2  Col3
0    A    B    10
1    A    B    20
2    A    C    20
3    C    B    20

【讨论】:

谢谢。我认为您能够消除我对组合的一些困惑。

以上是关于有条件地删除重复的pandas python的主要内容,如果未能解决你的问题,请参考以下文章

根据条件 pandas 删除 DataFrame 中的重复行

Pandas 重复数据处理大全

Python/Pandas - 按列值删除重复行

从 csv 和训练中删除重复数据(Keras、python、pandas)

根据多个条件将新列添加到 Python Pandas DataFrame [重复]

使用 Pandas 删除 Python 中的多余行 [重复]