【问题标题】:How to compare two columns to get duplicates in python如何比较两列以在python中获取重复项
【发布时间】:2021-01-27 22:21:21
【问题描述】:

我有一个包含两列的 df,我只需要查找和存储重复项。

|-------------------|-------------|
|      col1         |    col2     |
|-------------------|-------------|
|     apple         |  mango      |
|-------------------|-------------|
|     banana        |  grape      |
|-------------------|-------------|
|     pear          |  watermelon |
|-------------------|-------------|
|     cherry        |  banana     |
|-------------------|-------------|
|     mango         |  apple      |
|-------------------|-------------|

结果应该像这样返回一个带有 col1 的 df

    |----------------|
    |   col1         |   
    |----------------|
    |   apple        |        
    |----------------|
    |   banana       |   
    |----------------|
    |   mango        |        
    |----------------|

我尝试了类似的方法,但它没有得到相同的结果。

df['a_flag'] = df['col2'].isin(df['col1']).astype(int)

df1=df[(df['a_flag']==1)]

【问题讨论】:

标签: python pandas


【解决方案1】:

您也可以使用loc 来传递列名:

df.loc[df['col2'].isin(df['col1']), ['col1']]

输出:

     col1
0   apple
3  cherry
4   mango

【讨论】:

  • 如果只有一列要比较,这很好,我想如果有很多你可以melt/stack然后使用isin
【解决方案2】:

感谢您的回复。但是我尝试使用集合,甚至这似乎也有效。不确定哪个更有效

这是有效的代码:

lst1=list(df['col1'])
lst2=list(df['col2'])
lst3=list(set(lst1) & set(lst2))

【讨论】:

    猜你喜欢
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多