Pandas Dataframe查找所有列均相等的行

我有一个包含字符的数据框-我想要按行的布尔结果,告诉我该行的所有列是否具有相同的值。

例如,我有

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

我已经尝试过.all,但似乎只能检查是否都等于一个字母。我能想到的唯一另一种方法是在每一行上做一个唯一的,看看是否等于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[:, 0], axis=0).all(1)

Out[14]:

0 True

1 False

2 True

dtype: bool

以上是 Pandas Dataframe查找所有列均相等的行 的全部内容, 来源链接: utcz.com/qa/423354.html

回到顶部