Внешнее слияние в Pandas
Внешнее слияние оставляет
в результате каждую строку
с обеих сторон, если ключ
нашёлся хотя бы в одной таблице.
Там, где пары полей нет, в ячейках
появляется пропуск. Для этого
функцию merge вызывают
во внешнем режиме слияния.
Создадим заказы из трёх позиций и цены с ключом, которого нет в заказах, затем выведем итог:
import pandas as pd
orders = pd.DataFrame({
'id': [1, 2, 3],
'item': ['Pen', 'Book', 'Cup'],
})
prices = pd.DataFrame({
'id': [1, 2, 4],
'price': [10, 25, 5],
})
full = pd.merge(orders, prices, how='outer')
print(full) # выведет id item price
# 0 1 Pen 10.0
# 1 2 Book 25.0
# 2 3 Cup NaN
# 3 4 NaN 5.0
Pen и Book получили
цены, для Cup цена пустая,
а строка с id равным 4
пришла только из таблицы цен
без названия товара.
Слева три сотрудника с кодами
1, 2, 3, справа
отделы для кодов 1, 2
и 4; общий столбец emp_id.
Получите четыре строки: у одного
сотрудника без отдела, у одного
кода отдел без сотрудника, и
выведите таблицу.
Таблица городов с тремя
названиями и таблица температур
для трёх кодов, из которых
один лишний; ключ city_id.
В ответе должны остаться все
города и все измерения, пропуски
на стороне без пары, выведите
результат.
Список из трёх экзаменов и баллы
для двух предметов плюс баллы
по четвёртому номеру; столбец
exam_no общий. Сформируйте
таблицу из четырёх строк и
выведите её.