Pandas:如何合并具有补充日期的时间序列?

3

我想创建一个包含最低值的新系列,这个最低值为(当天低点/前一天收盘价)。因此,我首先根据每个条件过滤出日期:

a=low['SPY'][low['SPY']<close['SPY'].shift(1)]
b=close['SPY'].shift(1)[low['SPY']>=close['SPY'].shift(1)]

现在,a和b都有“洞”:
a:
2013-06-21 16:00:00    1577.70
2013-06-24 16:00:00    1560.33
2013-06-28 16:00:00    1601.06
2013-07-02 16:00:00    1606.77

b:
2013-06-25 16:00:00    1573.09
2013-06-26 16:00:00    1588.03
2013-06-27 16:00:00    1603.26
2013-07-01 16:00:00    1606.28

如何将a和b连接起来,以便我得到一个正确索引的时间序列?
我尝试了pd.concat的所有变体(或创建一个带有原始索引的系列C并在其上合并),但它总是只追加而不是按预期合并。
非常感谢!
1个回答

2
为什么不在追加/连接操作后执行sort_index呢?
In [11]: a.append(b) #  equivalent to pd.concat([a, b])
Out[11]:
2013-06-21 16:00:00    1577.70
2013-06-24 16:00:00    1560.33
2013-06-28 16:00:00    1601.06
2013-07-02 16:00:00    1606.77
2013-06-25 16:00:00    1573.09
2013-06-26 16:00:00    1588.03
2013-06-27 16:00:00    1603.26
2013-07-01 16:00:00    1606.28
dtype: float64

In [12]: a.append(b).sort_index()
Out[12]:
2013-06-21 16:00:00    1577.70
2013-06-24 16:00:00    1560.33
2013-06-25 16:00:00    1573.09
2013-06-26 16:00:00    1588.03
2013-06-27 16:00:00    1603.26
2013-06-28 16:00:00    1601.06
2013-07-01 16:00:00    1606.28
2013-07-02 16:00:00    1606.77
dtype: float64

为了提高效率,pandas 默认不进行排序,需要显式地请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接