【问题标题】:How to create a dataframe with every iteration of a for loop如何在 for 循环的每次迭代中创建数据框
【发布时间】:2022-02-21 22:51:09
【问题描述】:

我有以下代码。


dict_of_df={}
for i in range(100):
    get_data = [data for data in cur]
    df = pd.DataFrame(get_data)
    dict_of_df[f"df_{i}"] = df

这给了我一个包含 100 个数据框的字典。但是,我需要将每个数据帧分配给一个变量,以便将其识别并导入另一个程序(Microsoft Power BI)。有没有办法可以将字典中的每个数据框分配给一个唯一变量?根据我在这里阅读的内容How to create a new dataframe with every iteration of for loop in Python,字典是存储每次迭代的数据帧的唯一方法,但我需要一种方法将其提取到我的工作区。

【问题讨论】:

  • 一个简单的搜索就会出现这种情况:stackoverflow.com/questions/6181935/… 简而言之;这不是一个好主意
  • Dicts 是您在 Python 中正确处理“变量变量”的方式。我对 Power BI 一无所知,但对我来说很奇怪,它迫使您在程序中创建数百个名称。你确定这是唯一的方法吗?
  • @timgeb 不幸的是,PowerBI 只支持将数据帧导入数据集,所以这是我唯一的选择,无论优化得多么糟糕。那有没有办法呢?

标签: python pandas


【解决方案1】:

使用globals() 动态创建变量。谨慎使用,这不是一个很好的做法,但它应该有效:

for i in range(100):
    get_data = [data for data in cur]
    df = pd.DataFrame(get_data)
    globals()[f"df_{i}"] = df  # <- replace your dict by globals()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 2019-03-01
    • 2021-12-22
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多