Повторная выборка панд на основе данных с более высоким разрешением - PullRequest
0 голосов
/ 11 мая 2018

У меня есть два временных ряда: разрешение 30 минут и разрешение 15 минут A и B , как показано ниже.Я хотел бы увеличить A до 15-минутного разрешения, используя B , чтобы масштабировать значения для данного интервала.Итак, для первого значения это будет:

B['final']['01/11/2017  07:30:00'] =  77.0*29.7/(29.7+12.67) 

A ['irrad']

2017-11-01 07:30:00     77.0
2017-11-01 08:00:00    214.0
2017-11-01 08:30:00    470.0
2017-11-01 09:00:00    714.0

B ['util']

2017-11-01 07:15:00     12.67
2017-11-01 07:30:00     29.70
2017-11-01 07:45:00     46.80
2017-11-01 08:00:00     74.07
2017-11-01 08:15:00    166.27
2017-11-01 08:30:00    256.50
2017-11-01 08:45:00    271.70
2017-11-01 09:00:00    354.33

Таким образом, финальная серия будет

B ['final']

01/11/2017 07:30    54.0
01/11/2017 07:45    82.9
01/11/2017 08:00    131.1
01/11/2017 08:15    184.8
01/11/2017 08:30    285.2

Я смотрю в Pampleas resample илиобъединить функции, но мог видеть, что это возможно.Есть идеи?

1 Ответ

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

Скажи, что ты преобразуй, ​​затем оставь слиться с утилитой:

A.index = pd.to_datetime(A.index)
B.index = pd.to_datetime(B.index)
merged = pd.merge(B, A.resample('15s').ffill(), left_index=True, right_index=True, how='left')
>>> merged

util    irrad
index       
2017-11-01 07:15:00 12.67   NaN
2017-11-01 07:30:00 29.70   77.0
2017-11-01 07:45:00 46.80   77.0
2017-11-01 08:00:00 74.07   214.0
2017-11-01 08:15:00 166.27  214.0
2017-11-01 08:30:00 256.50  470.0
2017-11-01 08:45:00 271.70  470.0
2017-11-01 09:00:00 354.33  714.0

Теперь вы можете использовать

>>> merged.irrad * merged.util / (merged.util + merged.util.shift(-1))
index
2017-11-01 07:15:00           NaN
2017-11-01 07:30:00     29.894118
2017-11-01 07:45:00     29.813850
2017-11-01 08:00:00     65.952318
2017-11-01 08:15:00     84.163446
2017-11-01 08:30:00    228.237410
2017-11-01 08:45:00    203.982237
2017-11-01 09:00:00           NaN
dtype: float64

Обратите внимание, что это не то, что вы указали в своем вопросе. Не стесняйтесь уточнить, как вы достигли ваших конечных результатов.

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