如何在Pandas中存储多个相关的时间序列
我刚接触Pandas,想请教一些专业人士的意见。我需要对超过30个金融证券的每日开盘价、最高价、最低价和收盘价进行各种统计分析(比如多重回归、相关性分析等)。每个时间序列的数据有500到1500天。因为每次分析都涉及多个证券,我在想,是把每个时间序列存储在一个单独的数据框(df)里(每个数据框的索引是日期),还是把它们合并成一个数据框,使用一个日期索引,这样实际上就是一个三维的数据框。如果选择后者,有什么建议可以帮助我更好地组织数据吗?
非常感谢大家的想法。
PS:我正在逐步学习如何处理跨多个时区的日内数据,但这对我第一次使用Pandas的项目来说有点复杂;这只是朝那个方向迈出的第一步。
2 个回答
1
除非你打算把所有的数据都互相关联,否则我建议把这些数据放在不同的数据框中,然后把它们放到一个字典里,比如 {"Timeseries1":df1, "Timeseries 2":df2...}。这样,当你想把某些时间序列放在一起进行关联时,你可以把它们合并,并在每个不同的数据框的列名后面加上后缀,以便区分它们。
你可能会对这场讲座感兴趣,讲者是pandas的作者,主题是 使用pandas进行金融数据分析的Python。
3
因为你只是在处理OHLC数据,所以数据量不大,这样很好。
对于这类情况,我通常会使用多重索引(http://pandas.pydata.org/pandas-docs/stable/indexing.html),把符号放在第一层,把日期放在第二层。这样你就可以只保留OHLC这几列,完全没问题。
要访问多重索引,可以使用.xs
这个函数。