【问题标题】:pandas duplication removing nans熊猫重复删除nans
【发布时间】:2016-01-30 04:21:10
【问题描述】:

我正在尝试检查重复项。 我用df['name_duplicated'] = df.duplicated('name', keep=False) 但是,这会将 name = NaN 的任何行视为重复。

有谁知道如何解决这个问题?

我正在尝试df[pd.isnull(df['name'])]['name_duplicated'] = False,但出现错误。

【问题讨论】:

  • 为什么不先删除它们呢? df['name_duplicated'] = df['name'].dropna().duplicated()?
  • @EdChum 我还不想删除它们,因为我还在另一列上进行过滤。只有当这是 False 并且另一列是 True 时,我才会想要删除它们
  • 其实默认行为是NaN产生False这不是你想要的吗? df['name_duplicated'] = df[df['Name'].duplicated()]?
  • 这就是我想要的,但很奇怪,出于某种原因,我的 NaNs 正在生成 True
  • 他们真的是NaN 吗? df[df['Name'].isnull()] 显示什么?

标签: python python-2.7 pandas duplicates


【解决方案1】:

您也可以尝试检查 NaN 并对重复调用的结果进行布尔运算

df['name_duplicated'] = df.duplicated('name', keep=False) & df['name'].notnull()

【讨论】:

  • 谢谢!我没有意识到你可以像这样在末尾添加一个布尔值
猜你喜欢
  • 2013-10-28
  • 1970-01-01
  • 2020-06-23
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
相关资源
最近更新 更多