РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pypdSpJnMa 53 of 83 menu
◀ ▶

Слияние по ближайшему времени в Pandas

У сделок и котировок метки времени редко совпадают до секунды. Функция merge_asof для каждой строки слева подбирает последнюю строку справа, у которой время не позже. Обе таблицы должны быть отсортированы по этому столбцу.

Зададим ряд курсов и три сделки, затем выведем сопоставление:

import pandas as pd quotes = pd.DataFrame({ 'time': pd.to_datetime([ '2024-01-01 10:00', '2024-01-01 10:05', '2024-01-01 10:12', ]), 'rate': [1.10, 1.12, 1.11], }) trades = pd.DataFrame({ 'time': pd.to_datetime([ '2024-01-01 10:03', '2024-01-01 10:08', '2024-01-01 10:15', ]), 'amount': [100, 200, 150], }) matched = pd.merge_asof(trades, quotes, on='time') print(matched) # выведет time amount rate # 0 2024-01-01 10:03:00 100 1.10 # 1 2024-01-01 10:08:00 200 1.12 # 2 2024-01-01 10:15:00 150 1.11

Сделка в 10:03 получила курс 10:00, в 10:08 - курс 10:05, в 10:15 - последний доступный курс 10:12. Строки сделок сохранили свой порядок.

Справочник температур по часам 9:00, 10:00, 11:00 и замеры в 9:40, 10:20, 11:05 в одном столбце времени. К каждому замеру подставьте последнюю температуру не позже момента замера и выведите таблицу.

Слева три события с метками минут, справа пять отметок курса валюты по возрастанию времени. Получите для каждого события актуальный на тот момент курс и выведите результат.

Журнал посещений с тремя временами входа и таблица статусов двери с четырьмя отметками. Сопоставьте каждому входу последний статус на момент или раньше и выведите итог.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить