不能使用 numpy.ndarray 或 pandas groupby 来创建单独的地块

Cant use numpy.ndarray or pandas groupby to create individual plots

我的目的是绘制大型数据集中每个位置 (ID) 的测量数据(var1、var2、时间戳)。我的数据:

ID  var1    var2    TimeStamp
AA  2       5    8/8/2010 0:00
AA  2.5     5    1/1/2010 0:00
B7  1.1     7    1/9/2010 0:00
B7  2       6    1/8/2010 0:00
B7  3       7    1/1/2010 0:00
B7  3       6    1/9/2010 0:00
C0  4       7    1/8/1900 0:00
...

但是,如图所示,每个位置 ID 的数据(或行)数各不相同(通常在 3-30 之间变化) 要为每个位置绘制变量,我不确定如何进行: 从我到目前为止的经历来看,类似于以下内容:

np.array(data).reshape(500,20,15)

通过 np.reshape 原始数据创建一个 numpy ndarray 不会让我将数组划分到单独的位置,因为数据的形状不规则。随后,使用 Pands groupby:

data_df.groupby('ID').plot('var1','var2')

立即为每个位置 ID 绘制 var1、var2 的图表,但没有机会迭代每个图表以创建标签/轴/限制等设置。(我还不知道如何迭代 pandas groupby 对象来创建和管理单个地块)

tldr:

有什么好的方法可以根据条件(对于每个 ID)从不规则形状的数据(如上所示)创建 np.ndarray

有什么方法可以迭代和控制要绘制的 pandas dataframe.groupby 对象(不只是谈论汇总的均值/最小值/最大值等)变量?

使用 pandas 绝对是处理此类数据的方法。

groupby().plot() returns 一个或多个 Axes 对象。您可以简单地遍历它们以改变它们的外观:

axs = data_df.groupby('ID').plot('var1','var2')
for ax in axs.values():
    ax.set_ylabel('whatever')
    ...