Как сравнить три столбца в pandas (с примером)
Вы можете использовать следующий базовый синтаксис для сравнения значений трех столбцов в pandas:
df[' all_matching '] = df. apply ( lambda x: x.col1 == x.col2 == x.col3 , axis = 1 )
Этот синтаксис создает новый столбец с именем all_matching , который возвращает True , если все столбцы имеют совпадающие значения, в противном случае он возвращает False .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: сравнение трех столбцов в Pandas
Предположим, у нас есть следующий DataFrame pandas с тремя столбцами:
import pandas as pd #createDataFrame 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) ABC 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) ABC 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
Как добавить столбец в DataFrame Pandas
Как изменить порядок столбцов в Pandas DataFrame