我有多个带有股票价格的数据框,我想将它们对齐到一个仅包含所有股票收盘价的数据框。
我希望所有数据框中的所有日期都出现在日期列(索引)和“NA”中,以防该日期的股票没有收盘价。
具有两个数据帧(df1 和 df2)的示例:
In [5]: df1
Out[5]:
Open High Low Close
Date1
2012-01-05 22.00 22.66 23.11 24.04
2012-01-04 24.04 23.80 23.08 22.16
2012-01-03 22.16 21.27 20.42 21.24
2012-01-01 21.24 22.30 22.52 22.30
In [7]: df2
Out[7]:
Open High Low Close
Date1
2012-01-07 23.00 21.66 25.11 21.04
2012-01-06 22.00 22.66 23.11 24.04
2012-01-04 24.04 23.80 23.08 22.16
2012-01-02 22.16 21.27 20.42 21.24
2012-01-01 21.24 22.30 22.52 22.30
现在我可以做
In [8]: frame=pd.DataFrame({"df1.Close":df1["Close"], "df2.Close":df2["Close"]})
结果如预期:
In [9]: frame
Out[9]:
df1.Close df2.Close
Date1
2012-01-01 22.30 22.30
2012-01-02 NaN 21.24
2012-01-03 21.24 NaN
2012-01-04 22.16 22.16
2012-01-05 24.04 NaN
2012-01-06 NaN 24.04
2012-01-07 NaN 21.04
我需要如何更改我的代码以对动态数量的数据帧执行相同的操作?现在,我有 8 个数据框需要以这种方式对齐。有什么方法可以循环遍历数据帧列表并像上面一样对齐它们 - 而不是手动绑定数据帧名称(形象地说,像 df[0] 到 df[7] )?
在此先感谢和亲切的问候!短剑