Лучший способ построить панду. DataFrame состоит из разных кусков - PullRequest
1 голос
/ 21 марта 2012

Я запускаю ежедневные симуляции в серии: я делаю 365 симуляций, чтобы получить результаты в течение всего года. После каждого запуска я хочу извлечь из результатов несколько массивов и добавить их в pandas.DataFrame для последующего анализа.

У меня есть грубая модель (выполняется оптимизация) и более точная модель для пост-симуляции, поэтому я могу получить одну и ту же переменную из двух источников. В случае пост-симуляции результаты могут перезаписать результаты оптимизации.
Чтобы сделать это более сложным, модель оптимизации имеет меньший выходной интервал, в зависимости от настроек дискретизации, но окончательный анализ будет выполняться на большем интервале пост-моделирования).

Каков наилучший способ создания этого DataFrame?

Это был мой первый аппроч:

  1. создание пустого DataFrame df для полного года с индексом DateRange с большим интервалом после моделирования (= 15 минут)
  2. выполнить оптимизацию за 1 день ==> создать временную df_temp с DateRange в качестве индекса с меньшим интервалом
  3. уменьшите это DataFrame до 15 минут, как описано здесь :
  4. обновление df с df_temp (строки в df все еще пусты, за исключением последней строки предыдущего запуска, поэтому я должен взять df_temp[1:])
  5. сделать симуляцию для того же дня ==> создать временную df_temp2 с интервалом = 15мин
  6. перезаписать соответствующие строки в df с помощью df_temp2

Какие методы мне следует использовать в пунктах 4) и 6)? Или есть лучший способ с самого начала? Спасибо, Рул

1 Ответ

1 голос
/ 24 марта 2012

Я думаю, что можно использовать DataFrame.combine_first, но в зависимости от масштаба данных, может быть более полезным иметь такой метод, как «update», который просто изменяет определенные строки в существующем DataFrame.combine_first является более общим и может привести к тому, что результат будет иметь другой размер, чем любой из входных данных (потому что индексы будут объединены вместе).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...