Pandas Dataframe Найти строки, где все столбцы равны

У меня есть dataframe, в котором есть символы. Я хочу, чтобы логический результат по строке указывал мне, имеют ли все столбцы для этой строки одинаковое значение.

Например, у меня есть

df = [ abcd 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]: abcd 0 CCCC 1 CCAA 2 AAAA 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]: abcd 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 
 df = pd.DataFrame.from_dict({'a':'CC A'.split(), 'b':'CC A'.split(), 'c':'CA A'.split(), 'd':'CA A'.split()}) df.apply(lambda x: len(set(x)) == 1, axis=1) 0 True 1 False 2 True dtype: bool 

Объяснение: set (x) имеет только 1 элемент, если все элементы строки одинаковы. Опция axis = 1 применяет любую заданную функцию к строкам.