Pandas Dataframe查找所有列均相等的行
我有一个包含字符的数据框-我想要按行的布尔结果,告诉我该行的所有列是否具有相同的值。
例如,我有
df = [ a b c d0 'C' 'C' 'C' 'C'
1 'C' 'C' 'A' 'A'
2 'A' 'A' 'A' 'A' ]
我希望结果是
0 True1 False
2 True
我已经尝试过.all,但似乎只能检查是否都等于一个字母。我能想到的唯一另一种方法是在每一行上做一个唯一的,看看是否等于1?提前致谢。
回答:
我认为最干净的方法是使用eq根据第一列检查所有列:
In [11]: dfOut[11]:
a b c d
0 C C C C
1 C C A A
2 A A A A
In [12]: df.iloc[:, 0]
Out[12]:
0 C
1 C
2 A
Name: a, dtype: object
In [13]: df.eq(df.iloc[:, 0], axis=0)
Out[13]:
a b c d
0 True True True True
1 True True False False
2 True True True True
现在,您可以使用全部(如果它们都等于第一项,则它们都相等):
In [14]: df.eq(df.iloc[:, 0], axis=0).all(1)Out[14]:
0 True
1 False
2 True
dtype: bool
以上是 Pandas Dataframe查找所有列均相等的行 的全部内容, 来源链接: utcz.com/qa/423354.html