使用Python pandas检查coloumns是否包含相同的值或NaN

时间:2015-10-29 09:59:10

标签: python pandas dataframe equals

我想要一个返回True的函数,如果对于列中的每一行,它们只包含与其他列中的元素或NaN相同的元素。

示例:

A  B  C
1  1  NaN
4  NaN  NaN
2  2  2

该函数应在此输入

上返回True
A  B  C
1  2  1
3  3  3

该函数应在此输入中返回False。 (由于1和2或不相同,也不是NaN)

编辑:

==equals()不起作用,因为:

  1. 它将NaN视为与NaN
  2. 不同
  3. 如果我告诉熊猫不这样做,那么NaN仍然与4不同。

1 个答案:

答案 0 :(得分:4)

这里的想法是在排除NAN值后计算数据框中每行的唯一值,如果count等于1这意味着您的条件已满足,其他明智的返回false

df.apply( lambda x: len(x[-x.isnull()].unique()) == 1 , axis = 1).all()

然后只有当所有行都满足条件

时才使用返回all()的{​​{1}}