Pandas 拼接系列

Splicing Together Series in Pandas

我有两个代表相同基础数据的系列,但一个是季度的(有更多的历史),第二个是月度的。我想将月度数据与季度数据拼接回来,这样我就能得到一个将两者结合起来的系列。最 "pandas" 的方法是什么?我已经将季度数据重新采样为月度数据。

示例代码:

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"))

我希望结果在 2012-01-31 之前是 ts1,之后是 ts2。

对于这种特定情况,您可以使用 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