【问题标题】:Find rows in DataFrame that have duplicates in two columns在 DataFrame 中查找在两列中有重复的行
【发布时间】:2021-11-18 10:28:19
【问题描述】:

DataFrame给出如下

df = pd.DataFrame({'col1' : [1,2,9,2,9,6], 'col2' : [13,4,5,4,5,0], 'col3' : [8,23,5,4,9,5]})
   col1 col2 col3
0   1   13   8
1   2   4    23
2   9   5    5
3   2   4    4
4   9   5    9
5   6   0    5

如何过滤此 DataFrame,以便仅获取在 col1 和 col2 中具有重复项的行。 所以最终 DataFrame 应该是这样的:

df_new
   col1 col2 col3
0   2    4    23
1   2    4    5
2   9    5    4
3   9    5    9

【问题讨论】:

  • 在您提供的df_new 中,行在 col1 和 col3 中的值不同 - 您能阐明您想要实现的目标吗?
  • 在第一个 df 中,第 1 行和第 3 行在 col1 和 col2 (2,4) 中具有相同的值。此外,第 2 行和第 4 行共享相同的值 (9,5)。你知道我的意思吗?
  • 所以你想保留 col1 和 col2 中重复值的行?
  • 是的,两者都有(因为 col3 不同)。
  • 如何过滤这个 DataFrame,以便我只得到 col1 和 col2 中具有相同值的行,所以它 measn col1 == col2

标签: python dataframe filter


【解决方案1】:

使用pd.DataFrame.duplicated()

df_new = df[df.duplicated(subset=["col1", "col2"], keep=False)]

【讨论】:

    猜你喜欢
    • 2019-03-17
    • 1970-01-01
    • 2016-06-12
    • 2018-01-06
    • 2018-03-19
    • 2019-10-09
    • 1970-01-01
    • 2016-03-02
    • 2017-12-31
    相关资源
    最近更新 更多