不能使用 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')
...
我的目的是绘制大型数据集中每个位置 (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')
...