构造由不同块组成的pandas.DataFrame的最佳方法

时间:2012-03-20 20:49:24

标签: python pandas

我正在批量运行每日模拟:我做了365次模拟以获得一整年的结果。每次运行后,我想从结果中提取一些数组,并将它们添加到pandas.DataFrame中以便稍后进行分析。

我有一个粗略的模型(进行优化)和一个更精确的后模拟模型,所以我可以从两个来源获得相同的变量。如果完成后仿真,结果可能会覆盖优化结果 为了使其更复杂,优化模型具有较小的输出间隔,取决于离散化设置,但最终分析将在后模拟的较大间隔上发生)。

构建此DataFrame的最佳方法是什么?

这是我的第一个appraoch:

  1. 为全年创建一个空的DataFrame df,其中DateRange索引具有较大的模拟后间隔(= 15分钟)
  2. 优化1天==>使用df_temp创建临时DateRange作为索引,使用较小的间隔
  3. 按照here所描述的那样DataFrame下采样至15分钟:
  4. 使用df更新df_tempdf中的行仍为空,但上一次运行的最后一行除外,因此我必须采用df_temp[1:]
  5. 在同一天做模拟==>使用interval = 15min
  6. 创建临时df_temp2
  7. 使用df
  8. 覆盖df_temp2中的相应行

    我应该在步骤4)和6)中使用哪些方法?或者从一开始就有更好的方法吗? 谢谢, 罗埃尔

1 个答案:

答案 0 :(得分:1)

我认为使用DataFrame.combine_first可能是要走的路,但是根据数据的规模,有一个像“update”这样的方法可能更有用,它只修改了现有DataFrame中的特定行。 combine_first更通用,可能导致结果与任何一个输入的大小不同(因为索引将联合在一起)。

https://github.com/pydata/pandas/issues/961