2017-04-19 111 views
0

我有两个系列代表相同的底层数据,但一个是季度(具有更多的历史背景),第二个是每月。我希望将每月的数据与季度数据重新拼接起来,这样我就可以将这两个数据结合起来。做这件事最“熊猫”的方式是什么?我已经将每月的季度数据重新抽样。熊猫拼接系列

示例代码:

ts1 = pd.Series(data=1, index=pd.DatetimeIndex(freq="Q", start="2000-03-31", end="2016-03-31")).resample("M").last().ffill() 
ts2 = pd.Series(data=2, index=pd.DatetimeIndex(freq="M", start="2012-01-31", end="2016-03-31")) 

我想的结果是TS1之后2012-01-31和TS2之前。

回答

2

对于这个特定的情况下,你可以使用combine_first

ts2.combine_first(ts1) 

这将需要的值从ts2如果两个系列包含相同的指数,并从ts1如果只ts1有指标。

您还可以使用pd.concat:

pd.concat((ts1[:'20120130'], ts2)) 

pd.concat((ts1[:'20120130'], ts2)).equals(ts2.combine_first(ts1)) 
Out: True