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