【发布时间】:2020-08-10 04:38:05
【问题描述】:
我在来自 Netlogo 模型运行的 csv 文件中有多个时间序列数据。我想将这些系列加入一个数据框,以便我可以制作箱线图来查看不同模拟模型运行的变化。每个 csv 中的 X 值是时间迭代(整数)。 y 值是模型中特定度量的值,例如人口计数。所以,我可以用 concat 加入 csvs。 y 变量有重复的列名。我的想法是将具有相同名称的列组合成一列作为数字列表(y 值)。然后我可以将 x, y 传递给 boxplot 以绘制该变量随时间的变化及其变化 - 中值等。数据的形式为:
x 人口群体颜色 0 0 0.00 0.00 0.00 1 1 74.47 42.48 40.96 2 2 74.46 42.48 40.96 会成为 x 人口群体颜色 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, 南] [42.48, 南] [40.96, 南]来自不同 csv 文件的此数据帧的倍数(数千个)。对于不同的运行/csv,x 轴值可以有不同的最大时间值。
如何组合数据帧,以便获得一个数据帧,其中包含每个 x 值的给定 y(列)的 y 值列表。对于提前结束的运行,某些 y 值会有 NaN。请注意,这是多个 y 列。请注意,每一列都是一个单独的箱线图(叠加在同一个图上)。
我尝试过 concat、join、merge,但无法将具有相同或不同名称的多个列转换为具有值列表而不是单个值的列。
或者,有没有更好的方法来做我想做的数据?
【问题讨论】:
标签: python-3.x pandas dataframe plotly boxplot