Панды: Рассматривать ли Серию как пошаговую функцию во время добавления ()? - PullRequest
0 голосов
/ 14 мая 2018

Когда добавляются два временных ряда с неидентичными индексами, создаются значения индекса, которые не являются общими для обоих временных рядов, и им присваивается значение NaN.

import pandas as pd
import numpy as np
from datetime import datetime

ts1 = pd.Series([1, 2], index=[datetime(2011,1,2), datetime(2011,1,3)])
ts2 = pd.Series([3, 4], index=[datetime(2011,1,3), datetime(2011,1,4)])

ts1.add(ts2)
  2011-01-02    NaN
  2011-01-03    5.0
  2011-01-04    NaN
  dtype: float64

Как добавить два ряда так, чтобы отсутствующиеточке datetime присваивается значение непосредственно предшествующего значения datetime?(рассматривая две серии как пошаговые функции)

Например, я хотел бы получить следующие результаты:

ts1.add(ts2)
  2011-01-02    NaN     # ts2 has no prior value for this date, so still NaN
  2011-01-03    5.0     #
  2011-01-04    6.0     # ts1 carries over the value 2 from 2011-01-03
  dtype: float64

1 Ответ

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

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

union = ts1.index.union(ts2.index)
ts1.reindex(union, method='ffill').add(ts2.reindex(union, method='ffill'))

урожайность

2011-01-02    NaN
2011-01-03    5.0
2011-01-04    6.0
dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...