首页 > 解决方案 > 如何创建数千个变量而不是使用 DataFrame(太慢)?

问题描述

问题

如何创建数千个变量而不是使用 DataFrame?更新元素

df1.loc[a,b] = df1.loc[a,b] + update_term

好慢!!!

现在的情况

  1. 我在数据框中有 445 家美国公司 2500 天的历史价格。(2500 行 * 445 列数据帧)
  2. 我试图对这些股票价格做的是计算下面显示的方程的 3 个参数。由于每家 445 家公司都有一个k, b k(每个 445 家),并且成对的 445 家公司有 w j,k参数(总共(445 * 444)/2),所以要创建的变量太多了。
    在此处输入图像描述

  3. 为了制作上述参数所需的变量,我制作了 3 个数据框,其中 2 个是 1*445 维度(1 行,445 列)用于 a k, b k和 445 * 445 维度用于 w j,k。下面显示了一个屏幕截图。 在此处输入图像描述

  4. 由于我使用 df.loc 函数更新每个公司的参数,例如

parameter = parameter + df.loc[date,'company_name']

我的代码太慢了!!

我的代码中的一个真实示例如下所示。

A_random_parameter = df1.loc['row_index_1',company_x] +
    df2.loc['row_index_2',company_x] *
    df3.loc[date,'company_y']

有什么建议可以创建数千个变量而不是使用类似 DataFrame 的方式吗?

标签: pythonpython-3.xpandas

解决方案


事实证明,正如 John Zwinck 所建议的那样,使用字典比使用 DataFrame 存储变量要快得多。谢谢!


推荐阅读