Объедините данные временных рядов для boxplot из нескольких файлов CSV - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть несколько временных рядов данных в CSV-файлах из моделей Netlo go. Я хотел бы объединить эти серии в один фрейм данных, чтобы я мог создать коробочную диаграмму, чтобы увидеть изменения от разных прогонов имитационной модели. Значения X в каждом CSV - это итерации времени (целые числа). Значения y являются значениями определенного показателя в модели, например, численности населения. Итак, я могу присоединиться к CSV с Concat. Есть повторяющиеся имена столбцов для переменных y. Моя мысль состоит в том, чтобы объединить столбцы с одинаковыми именами в один столбец в виде списка чисел (значений y). Затем я могу передать это x, y на блок-график, чтобы построить эту переменную во времени с ее вариациями - медиана и т. Д. c. Данные имеют вид:


        x   population   groups  color
     0  0   0.00          0.00   0.00
     1  1  74.47         42.48  40.96
     2  2  74.46         42.48  40.96
    would become
        x  population      groups      color
     0  0  [0.00, 1.2]    [0.00, 5]    [0.00, 4]
     1  1  [74.47, 3.2]   [42.48, 55]  [40.96, 55]
     2  2  [74.46, Nan]   [42.48, NaN] [40.96, NaN]

Существует несколько кратных значений этого кадра данных из разных файлов CSV (тысячи). Значение оси x может иметь различное максимальное значение времени для разных прогонов / csvs.

Как объединить кадры данных таким образом, чтобы я получил один кадр данных со списком значений y для данного y (столбца) для каждого x ценность. Для некоторых значений y для прогонов, завершившихся раньше, будут значения NaN. Обратите внимание, что это несколько столбцов y. Обратите внимание, что каждый столбец представляет собой отдельный блок-график (наложенный на один и тот же график).

Я пробовал concat, join, merge и не смог преобразовать несколько столбцов с одинаковыми или разными именами в один столбец с список значений, а не одно значение.

Или есть ли лучший способ сделать то, что я хочу сделать с данными?

...