使用Python检查冒号是否包含相同的值或NaN
如果列中的每一行只包含与其他列中的元素相同或NaN的元素,我希望函数返回True 例如:使用Python检查冒号是否包含相同的值或NaN,python,pandas,dataframe,equals,Python,Pandas,Dataframe,Equals,如果列中的每一行只包含与其他列中的元素相同或NaN的元素,我希望函数返回True 例如: 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或不相同,且两者都不相同) 编辑: =或equals()不起作用,因为: 它将NaN视为与NaN不同 如果我告诉熊猫们不要这样做,那么NaN和4仍然是不同的 这里的想法是在排除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或不相同,且两者都不相同)
编辑:
=
或equals()
不起作用,因为:
这里的想法是在排除
NAN
值后,计算数据帧中每行的唯一值,如果count等于1
,这意味着满足了条件,否则返回false
df.apply( lambda x: len(x[-x.isnull()].unique()) == 1 , axis = 1).all()
然后使用
all()
仅当所有行满足条件时才返回true
。这里的想法是在排除NAN
值后,计算数据帧中每行的唯一值,如果count等于1
,则表示满足条件,否则返回false
df.apply( lambda x: len(x[-x.isnull()].unique()) == 1 , axis = 1).all()
然后使用
all()
仅当所有行满足条件时才返回true
,这是我在这里的第一篇文章,我不确定应该详细说明什么。我也不知道如何在熊猫身上做到这一点。如果我没有任何新的想法,我的前进之路就是用纯python解决它。我不认为这对stackoverflow特别有趣。你试过df['A']==df['B']
?另外,您的输出需要解释,因为我不明白return True和return False在这里的意思。我将进行编辑。这是我在这里的第一篇文章,我不确定我应该详细说明什么。我也不知道如何在熊猫身上做到这一点。如果我没有任何新的想法,我的前进之路就是用纯python解决它。我不认为这对stackoverflow特别有趣。你试过df['A']==df['B']
?此外,您的输出需要解释,因为我不明白返回True和返回False在这里的意思,我将进行编辑。