Слияние по ключу в 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],
})
print(orders) # выведет id item
# 0 1 Pen
# 1 2 Book
# 2 3 Cup
both = pd.merge(orders, prices)
print(both) # выведет id item price
# 0 1 Pen 10
# 1 2 Book 25
В заказах три строки, но строка
с Cup исчезла: для id
равного 3 в таблице цен пары
нет. В итоговой таблице остались
только Pen и Book
с их ценами.
Таблица учеников: коды 1,
2, 3 и имена; таблица
комнат: коды 1 и 2
и номера аудиторий. Общий столбец
называется code. Получите
таблицу только с теми учениками,
для которых есть комната, и выведите
её.
В списке деталей три кода, в прайсе
цены только для двух из них. Столбец
part_id общий. Сформируйте
таблицу из двух строк с названиями
и ценами и выведите результат.
Расписание содержит пары day
и урок, справочник - пары day
и учителя для двух дней из трёх.
Соберите таблицу, где каждый урок
стоит рядом с учителем, и выведите
её.