【问题标题】:return columns where dataframes differ in values返回数据框值不同的列
【发布时间】:2019-03-07 23:08:48
【问题描述】:

我有两个数据框,例如下面的 df1 和 df2 示例。我想比较数据框之间的值,并返回数据框在列中具有不同值的列。因此,在下面的示例中,它将返回 B 列。非常感谢任何提示。

df1

A B C
1 2 3
1 1 1

df2

A B C
1 1 3
1 1 1

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    使用的比较dataframes!=或ne()返回一个boolean dataframe,您可以使用任何()查找任何真值。这返回一个布尔系列,您可以自行索引。

    s = (df1 != df2).any()
    s[s].index
    
    Index(['B'], dtype='object')
    

    【讨论】:

    • 你可以解释你做什么而不是只是粘贴代码吗? span>
    • 我的意思是你只是在没有解释你的代码正在做什么的情况下写答案。我不是指抄袭。 span>
    【解决方案2】:

    在上面的例子中使用eqall

    df1.eq(df2).all().loc[lambda x : ~x].index
    Out[720]: Index(['B'], dtype='object')
    

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 2021-05-09
      • 2022-11-20
      • 1970-01-01
      • 2019-12-14
      • 2021-07-24
      • 2018-09-24
      • 2017-11-26
      • 2018-04-02
      相关资源
      最近更新 更多