【问题标题】:For in loop creating new Pandas DataFramesFor in 循环创建新的 Pandas DataFrames
【发布时间】:2022-02-02 10:33:29
【问题描述】:

我有 3 个pd.DataFrame,我想应用相同的操作(带循环)创建 3 个新的 DataFrame。

d = {}
dfs=[d10,d11,acc]
for i in dfs:
    a = (i.groupby('Variable').cumcount()).reset_index()
    d[i] = pd.DataFrame(a)

我尝试将它保存在字典中,但我得到的错误是:

TypeError: 'DataFrame' 对象是可变的,因此它们不能被散列

【问题讨论】:

  • 您正在尝试使用 DataFrame 作为字典键。这是不允许的。您可以将它们存储在列表中,也可以使用整数作为键,但不能使用 DataFrame。
  • 感谢您的回答。如何将它们存储在列表中? @蒂姆罗伯茨
  • 您已经有dfs 作为列表。只需创建d = [] 并执行d.append( pd.DataFrame(a) )。现在这两个列表是并行的。
  • 感谢您的帮助!我已经解决了@TimRoberts

标签: python pandas dataframe


【解决方案1】:

将它们存储在列表中。字典里没有。

dfs=[d10,d11,acc]
for i in dfs:
    a = (i.groupby('Variable').cumcount()).reset_index()
    d.append( pd.DataFrame(a) )

然后,调用每个DataFrame:

d[0]-->d10

d[1]-->d11

d[2]-->acc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2020-02-08
    • 1970-01-01
    • 2021-06-25
    • 2017-12-18
    • 2023-03-13
    相关资源
    最近更新 更多