【问题标题】:How can modify dataframe list elements in a loop Python?如何在循环 Python 中修改数据框列表元素?
【发布时间】:2019-12-25 14:40:28
【问题描述】:

我的列表中有 2 个数据框,我的意思是“Intraday_Mape”和“Day_Ahead_Mape”是数据框。 这些数据框包含每小时数据,但我想将它们更改为每月数据。当我这样做时,我想使用 for 循环,因为将来我会处理更多的数据帧。

report_dfs = [Intraday_Mape, Day_Ahead_Mape]

for i, _ in enumerate(report_dfs):
    report_dfs[i]=report_dfs[i].index.name = 'Date'
    report_dfs[i]=report_dfs[i].resample('M').mean().reindex(annual_date_range, fill_value = 0)
    report_dfs[i]=report_dfs[i].round(2)

当我打印 Intraday_Mape 时,我还有每小时数据,它没有变化。 如何在 for 循环之外实现修改后的数据帧? 我的意思是,当我打印 Intraday_Mape 时:

print(Intraday_Mape)

我有旧的。如何在 for 循环之外永久更改这些数据集?

【问题讨论】:

  • df.groupby(df['date_col'].dt.month)['values'].mean()) ?
  • 展示您的 DataFrame 示例和您的预期输出
  • 这一步我没有问题,在for循环中我实现了修改后的数据帧,但我想用它们的名字将它们从for循环中调用出来。

标签: pandas for-loop enumerate


【解决方案1】:

你应该说print(report_dfs[0])print(report_dfs[1]) 来获取数据帧。您实际上并没有修改命名的数据框。您正在修改您创建的列表中的数据框。那是report_dfs

【讨论】:

  • Mehmed, ben bu dataframe'leri ismi ile çağırmam gerek yani modify etmem gerekiyor ki for loop'un dışında çağırabileyim bunu nasıl yapabilirim peki?
  • 您可以单独重新分配它们,例如 Intraday_Mape = report_dfs[0] 和 Day_Ahead_Mape = report_dfs[1] 但我想您出于某种原因不能这样做?除了这两个之外,您还有数据框吗?
  • 我发现了与您类似的帖子,但没有一个真正回答您的问题。我也无法弄清楚如何在循环中做到这一点。对不起 HACI!
  • 我知道你真的很想帮忙。哎呀!
猜你喜欢
  • 2013-10-17
  • 2021-10-08
  • 2016-07-21
  • 1970-01-01
  • 2017-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多