Сопоставление пивота и фрейма данных по ближайшей дате - PullRequest
0 голосов
/ 03 мая 2018

У меня есть два кадра данных. Одна - это сводная таблица, содержащая три столбца, идентификатор, дату и значение. Это выглядит так:

enter image description here

Идентификатор - это код CUSIP.

Мой другой фрейм данных содержит более 50 столбцов, но разделяет идентификатор с первым фреймом данных.

Это выглядит так:

enter image description here

Код CUSIP присутствует в этом кадре данных в качестве общего идентификатора.

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

То, что я хотел бы сделать, - это объединить мой 3-колоночный фрейм данных с моим большим датой, сопоставив идентификатор (CUSIP) и используя самое близкое совпадение столбца даты и времени между ними.

Я попытался использовать инструмент merge_asof, но это возможно только в том случае, если даты отсортированы (что невозможно, если у меня несколько записей для каждой даты - несколько идентификаторов имеют значения на каждую дату).

Есть идеи, как с этим справиться?

1 Ответ

0 голосов
/ 03 мая 2018

Поскольку мой маленький массив данных всегда сообщал значения первичного месяца и большие значения месяца ультимо в массиве данных, для меня проще всего было просто изменить даты ультимо на даты первичного числа (следующего месяца).

Для этого я использовал:

df ['DATE'] = df ['DATE'] + pd.offsets.MonthBegin (1)

, который возвращает 01-01-1990, если значение 12-31-1989. Оттуда я мог бы нормально объединить кадры данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...