Часто вам может понадобиться сравнить два столбца в Pandas DataFrame и записать результаты сравнения в третий столбец.
Вы можете легко сделать это, используя следующий синтаксис:
conditions=[(condition1),(condition2)]
choices=[" choice1"," choice2 "]
df[" new_column_name "]=np.select (conditions, choices, default)
Вот что делает этот код:
- условия - это условия для проверки между двумя столбцами
- варианты — это результаты, которые должны быть возвращены в зависимости от условий
- np.select используется для возврата результатов в новый столбец
В следующем примере показано, как использовать этот код на практике.
Пример: сравнение двух столбцов в Pandas
Предположим, у нас есть следующий DataFrame, который показывает количество голов, забитых двумя футбольными командами в пяти разных матчах:
import numpy as np
import pandas as pd
#create DataFrame
df = pd.DataFrame({'A_points': [1, 3, 3, 3, 5],
'B_points': [4, 5, 2, 3, 2]})
#view DataFrame
df
A_points B_points
0 1 4
1 3 5
2 3 2
3 3 3
4 5 2
Мы можем использовать следующий код для сравнения количества голов по строкам и вывода победителя матча в третьем столбце:
#define conditions
conditions = [df['A_points'] > df['B_points'],
df['A_points'] < df['B_points']]
#define choices
choices = ['A', 'B']
#create new column in DataFrame that displays results of comparisons
df['winner'] = np.select (conditions, choices, default='Tie')
#view the DataFrame
df
A_points B_points winner
0 1 4 B
1 3 5 B
2 3 2 A
3 3 3 Tie
4 5 2 A
Результаты сравнения отображаются в новой колонке под названием « победитель» .
Заметки
Вот несколько вещей, о которых следует помнить при сравнении двух столбцов в кадре данных pandas:
- Количество условий и вариантов выбора должно быть равным.
- Значение по умолчанию указывает значение, которое будет отображаться в новом столбце, если ни одно из условий не выполняется.
- И NumPy , и Pandas необходимы, чтобы этот код работал.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как переименовать столбцы в Pandas
Как добавить столбец в Pandas DataFrame
Как изменить порядок столбцов в Pandas DataFrame