Вы можете использовать следующие методы для сравнения столбцов в двух разных pandas DataFrames:
Метод 1: подсчет совпадающих значений между столбцами
df1['my_column']. isin (df2['my_column']). value_counts ()
Способ 2: отображение совпадающих значений между столбцами
pd.merge(df1, df2, on=['my_column'], how='inner')
В следующих примерах показано, как использовать каждый метод со следующими пандами DataFrames:
import numpy as np
import pandas as pd
#create first DataFrame
df1 = pd.DataFrame({'team': ['Mavs', 'Rockets', 'Spurs', 'Heat', 'Nets'],
'points': [22, 30, 15, 17, 14]})
#view DataFrame
print(df1)
team points
0 Mavs 22
1 Rockets 30
2 Spurs 15
3 Heat 17
4 Nets 14
#create second DataFrame
df2 = pd.DataFrame({'team': ['Mavs', 'Thunder', 'Spurs', 'Nets', 'Cavs'],
'points': [25, 40, 31, 32, 22]})
#view DataFrame
print(df2)
team points
0 Mavs 25
1 Thunder 40
2 Spurs 31
3 Nets 32
4 Cavs 22
Пример 1. Подсчет совпадающих значений между столбцами
В следующем коде показано, как подсчитать количество совпадающих значений между столбцами команды в каждом кадре данных:
#count matching values in team columns
df1['team']. isin (df2['team']). value_counts ()
True 3
False 2
Name: team, dtype: int64
Мы видим, что два DataFrames имеют 3 общих названия команд и 2 разных названия команд.
Пример 2. Отображение совпадающих значений между столбцами
В следующем коде показано, как отобразить фактические совпадающие значения между столбцами группы в каждом кадре данных:
#display matching values between team columns
pd.merge(df1, df2, on=['team'], how='inner')
team points_x points_y
0 Mavs 22 25
1 Spurs 15 31
2 Nets 14 32
Из вывода мы видим, что два DataFrames имеют следующие общие значения в столбцах команды :
- Мавс
- шпоры
- сети
Связанный: Как сделать внутреннее соединение в Pandas (с примером)
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как переименовать столбцы в Pandas
Как добавить столбец в Pandas DataFrame
Как изменить порядок столбцов в Pandas DataFrame