我有一个包含字符的数据帧 – 我想要一个布尔结果的行,告诉我该行的所有列是否具有相同的值.
例如,我有
df = [ a b c d 0 'C' 'C' 'C' 'C' 1 'C' 'C' 'A' 'A' 2 'A' 'A' 'A' 'A' ]
我想要的结果是
0 True 1 False 2 True
我已经尝试了,但似乎我只能检查所有都等于一个字母.我唯一可以想到的方法是通过在每一行做一个独特的,看看是否等于1?提前致谢.
解决方法
我认为最干净的方法是使用eq来检查第一列的所有列:
In [11]: df Out[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[:,axis=0).all(1) Out[14]: 0 True 1 False 2 True dtype: bool