Pandas:在add()期间将序列视为步骤函数?
当添加两个索引不相同的时间序列时,将创建并分配两个时间序列都不通用的索引值Pandas:在add()期间将序列视为步骤函数?,pandas,time-series,Pandas,Time Series,当添加两个索引不相同的时间序列时,将创建并分配两个时间序列都不通用的索引值 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)]
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
如果使用两个系列的索引并集对它们重新编制索引,则可以使用
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