как объединить / объединить / объединить / выровнять два dfs с разными индексами и размерами временных интервалов в пандах - PullRequest
0 голосов
/ 26 апреля 2018

Много написано на эту тему, но я до сих пор не могу понять это:

У меня есть df1 с неравномерно расположенными строками, например:

Time                   a  
2015-04-07 09:09:48    185.25
2015-04-07 09:30:50    190.50
2015-04-07 09:31:07    187.00
2015-04-07 09:35:23    190.60
2015-04-07 09:47:43    185.30

Тогда у меня есть намного больший df2 также с неравномерно расположенными рядами, такими как:

time                 b      c      
2016-06-08 09:09:00  32.30  32.80
2016-06-08 09:09:48  32.35  32.89
2016-06-08 09:24:22  32.30  32.81
2016-06-08 09:30:50  32.40  32.84

Я хочу создать новый df для каждой строки в df1 с соответствующей по времени строкой из df2, если таковая имеется.

Ожидаемый результат:

Time                       a        b       c
    2015-04-07 09:09:48    185.25   32.35   32.89
    2015-04-07 09:30:50    190.50   32.40   32.84
...

Возможно ли выполнить повторную выборку на пользовательской частоте, т.е. df1.index?

Любые подсказки или подсказки приветствуются :)

UPDATE

Решив на одну проблему меньше, я избавился от повторяющихся записей в df2:

df2[~df2.index.duplicated(keep='last')]

Я ищу решение для панд, пожалуйста. Пример выше обновлен соответственно.

1 Ответ

0 голосов
/ 26 апреля 2018

Я не знаю, есть ли у pandas какая-либо библиотека, но это можно легко решить с помощью словаря.

Сборка dict_1 из df1 и dict_2 из df2 со временем в качестве ключа, затем:

for time_key in dict_1:
    if time_key in dict_2:
       dict_1[time_key]['b'] = dict_2[time_key]['b']
       dict_1[time_key]['c'] = dict_2[time_key]['c']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...