我有一个庞大的数据库(包含数百万行的约100个变量),由库存数据组成。我设法通过sqlalchemy(postgreql + psycopg2)将python与数据库连接起来。我在云上运行它。
原则上我想做一些事情: 1)所有可能组合的回归:我正在运行每个股票的简单回归,即XYZ上的ABC和ABC上的XYZ,这在n = 100股票中,产生n(n + 1)/ 2个组合。 - >我想到了一个调用股票对的函数,两个回归并比较结果并根据某些标准选择一个。 我的问题:是否有一种有效的方式来调用“阶乘”?
2)滚动窗口:为了避免数据过载,我想只调用调查数据帧,即30天,然后每天滚动,这意味着我的句点是:
1: 1D-30D
2: 2D-31D and so on
含义我总是在第一天删除并在数据帧的末尾添加另一行。这意味着我有两个步骤,第一天放弃并从我的数据库中读取下一行。 我的问题:这是一种有意义的方式还是Python有更好的东西?你会怎么做?
3)扩展窗口:我保留30天并添加另外30天,然后运行我的回归,而不是删除第一行并添加另一行。问题在这里,在某些时候我会接受所有可能对内存来说太大的数据? 我的问题:这里的解决方法是什么?
4)当我在云上运行我的分析(比我自己的电脑多一些内核)时,实际上我可以使用多线程,发送“批处理”作业并让Python并行处理。我想把我的数据集拆分成4x25股票并让它并行运行(所以垂直分割),还是我应该更好地水平分割? 另外我使用的是Jupyter;我想知道如何最好地接近这里,通常我有一个调用my_program.py的shell脚本。这是一样的吗?
答案 0 :(得分:1)
让我试着断然给出答案,并注意我的观察。
希望这些能回答你的问题。