Вы можете использовать следующий базовый синтаксис для сравнения значений в трех столбцах в pandas:
df['all_matching'] = df.apply ( lambda x: x. col1 == x. col2 == x. col3 , axis = 1 )
Этот синтаксис создает новый столбец с именем all_matching , который возвращает значение True , если все столбцы имеют совпадающие значения, в противном случае он возвращает False .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: сравнение трех столбцов в Pandas
Предположим, у нас есть следующий pandas DataFrame с тремя столбцами:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'A': [4, 0, 3, 3, 6, 8, 7, 9, 12],
'B': [4, 2, 3, 5, 6, 4, 7, 7, 12],
'C': [4, 0, 3, 5, 5, 10, 7, 9, 12]})
#view DataFrame
print(df)
A B C
0 4 4 4
1 0 2 0
2 3 3 3
3 3 5 5
4 6 6 5
5 8 4 10
6 7 7 7
7 9 7 9
8 12 12 12
Мы можем использовать следующий код для создания нового столбца с именем all_matching , который возвращает True , если все три столбца совпадают в данной строке, и False , если они не совпадают:
#create new column that displays whether or not all column values match
df['all_matching'] = df.apply ( lambda x: x. A == x. B == x. C , axis = 1 )
#view updated DataFrame
print(df)
A B C all_matching
0 4 4 4 True
1 0 2 0 False
2 3 3 3 True
3 3 5 5 False
4 6 6 5 False
5 8 4 10 False
6 7 7 7 True
7 9 7 9 False
8 12 12 12 True
Новый столбец с именем all_matching показывает, совпадают ли значения во всех трех столбцах в данной строке.
Например:
- Все три значения совпадают в первой строке, поэтому возвращается True .
- Не все значения совпадают во второй строке, поэтому возвращается False .
И так далее.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как переименовать столбцы в Pandas
Как добавить столбец в Pandas DataFrame
Как изменить порядок столбцов в Pandas DataFrame