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