我想创建一个包含最低(当天低)/(前一天关闭)的新系列。所以首先我会过滤每个条件的日期:
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系列并合并它)但它总是只是附加并且没有按预期合并。
非常感谢!
答案 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默认情况下不排序,需要明确询问。