熊猫:如何将时间序列与补充日期合并?

时间:2013-07-12 18:07:42

标签: python pandas time-series

我想创建一个包含最低(当天低)/(前一天关闭)的新系列。所以首先我会过滤每个条件的日期:

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(或者使用orginial索引创建一个C系列并合并它)但它总是只是附加并且没有按预期合并。

非常感谢!

1 个答案:

答案 0 :(得分: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默认情况下不排序,需要明确询问。