Откуда строка в 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],
})
marked = pd.merge(
orders,
prices,
how='outer',
indicator=True,
)
print(marked) # выведет id item price _merge
# 0 1 Pen 10.0 both
# 1 2 Book 25.0 both
# 2 3 Cup NaN left_only
# 3 4 NaN 5.0 right_only
Значение both стоит у строк
с общим ключом, left_only -
у Cup, right_only -
у цены с id равным 4.
Столбец _merge не заменяет
данные, а только поясняет источник.
Объедините список из трёх групп
и расписание аудиторий для
двух групп плюс одной лишней;
ключ group_id. В таблице
должны быть метки: две строки
из обеих таблиц, одна только
слева и одна только справа.
Выведите результат.
Слева три города, справа данные
осадков для двух городов и
дополнительный код; столбец
city_id общий. Получите
слияние, где видно происхождение
каждой из четырёх строк, и
выведите его.
Таблица предметов по трём номерам
и таблица часов занятий для
двух номеров и четвёртого;
общий столбец subj_no.
Выведите объединение с пояснением
источника строк.