2014-11-22 2 views
3

Использование pandas 0.15.1. Предположим, у меня есть следующие два кадра данных:Объединение/объединение двух данных с различными частотными рядами в Пандах?

daily 
2014-11-20 00:00:00 Rain 
2014-11-21 00:00:00 Cloudy 
2014-11-22 00:00:00 Sunny 

.

minutely 
2014-11-20 12:45:00  51 
2014-11-20 12:46:00  43 
2014-11-20 12:47:00  44 
... 
2014-11-21 12:45:00  44 
2014-11-21 12:46:00  46 
2014-11-21 12:47:00  48 
... 
2014-11-22 12:45:00  38 
2014-11-22 12:46:00  32 
2014-11-22 12:47:00  37 

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

И поскольку строки минут на самом деле не имеют данных в 00:00:00, я не хочу, чтобы это время включалось в результирующий фрейм. Требуемый выход:

2014-11-20 12:45:00  51 Rain 
2014-11-20 12:46:00  43 Rain 
2014-11-20 12:47:00  44 Rain 
... 
2014-11-21 12:45:00  44 Cloudy 
2014-11-21 12:46:00  46 Cloudy 
2014-11-21 12:47:00  48 Cloudy 
... 
2014-11-22 12:45:00  38 Sunny 
2014-11-22 12:46:00  32 Sunny 
2014-11-22 12:47:00  37 Sunny 

Как я могу это достичь? Нужно ли использовать слияние, concat или join?

ответ

3

начиная с:

>>> left 
        minutely 
2014-11-20 12:45:00  51 
2014-11-20 12:46:00  43 
2014-11-20 12:47:00  44 
2014-11-21 12:45:00  44 
2014-11-21 12:46:00  46 
2014-11-21 12:47:00  48 
2014-11-22 12:45:00  38 
2014-11-22 12:46:00  32 
2014-11-22 12:47:00  37 
>>> right 
      daily 
2014-11-20 Rain 
2014-11-21 Cloudy 
2014-11-22 Sunny 

вы можете сделать:

>>> left['day'] = left.index.date 
>>> right.index = right.index.date 
>>> left.join(right, on='day', how='left') 
        minutely   day daily 
2014-11-20 12:45:00  51 2014-11-20 Rain 
2014-11-20 12:46:00  43 2014-11-20 Rain 
2014-11-20 12:47:00  44 2014-11-20 Rain 
2014-11-21 12:45:00  44 2014-11-21 Cloudy 
2014-11-21 12:46:00  46 2014-11-21 Cloudy 
2014-11-21 12:47:00  48 2014-11-21 Cloudy 
2014-11-22 12:45:00  38 2014-11-22 Sunny 
2014-11-22 12:46:00  32 2014-11-22 Sunny 
2014-11-22 12:47:00  37 2014-11-22 Sunny 
Смежные вопросы