Как выполнить ВПР в Pandas


Вы можете использовать следующий базовый синтаксис для выполнения ВПР (аналогично Excel) в pandas:

pd.merge(df1,
 df2,
 on ='column_name',
 how ='left')

В следующем пошаговом примере показано, как использовать этот синтаксис на практике.

Шаг 1: создайте два фрейма данных

Во-первых, давайте импортируем pandas и создадим два кадра данных pandas:

import pandas as pd

#define first DataFrame
df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E', 'F'],
 'team': ['Mavs', 'Mavs', 'Mavs', 'Mavs', 'Nets', 'Nets']})

#define second DataFrame
df2 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E', 'F'],
 'points': [22, 29, 34, 20, 15, 19]})

#view df1
print(df1)

 player team
0 A Mavs
1 B Mavs
2 C Mavs
3 D Mavs
4 E Nets
5 F Nets

#view df2
print(df2)

 player points
0 A 22
1 B 29
2 C 34
3 D 20
4 E 15
5 F 19

Шаг 2: Выполните функцию ВПР

Функция ВПР в Excel позволяет искать значение в таблице, сопоставляя столбец.

В следующем коде показано, как найти команду игрока с помощью pd.merge() , чтобы сопоставить имена игроков между двумя таблицами и вернуть команду игрока:

#perform VLOOKUP
joined_df = pd.merge(df1,
 df2,
 on ='player',
 how ='left')

#view results
joined_df

 player team points
0 A Mavs 22
1 B Mavs 29
2 C Mavs 34
3 D Mavs 20
4 E Nets 15
5 F Nets 19

Обратите внимание, что результирующий кадр данных pandas содержит информацию об игроке, его команде и набранных им очках.

Вы можете найти полную онлайн-документацию для функции pandas merge() здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:

Как создавать сводные таблицы в Python
Как рассчитать корреляцию в Python
Как рассчитать процентили в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.