熊猫:在add()期间将系列视为步进功能?

时间:2018-05-14 06:55:37

标签: pandas time-series

当添加两个具有不相同索引的时间序列时,将创建两个时间序列不同的索引值,并为其指定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

如何添加两个系列,以便为缺少的日期时间点分配前一个日期时间值的值? (将这两个系列视为逐步功能)

例如,我想得到这样的结果:

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 :(得分:1)

如果您使用索引的并集重新索引两个系列,则可以使用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