我的目的是在大型数据集中绘制每个位置(ID)的测量数据(var1,var2,Timestamp)。我的数据:
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
对象的任何方式来绘制(不只是讨论汇总的均值/最小/最大等)变量?
答案 0 :(得分:0)
使用pandas
绝对是处理此类数据的方法。
groupby().plot()
会返回一个或多个Axes
个对象。你可以简单地迭代它们来改变它们的方面:
axs = data_df.groupby('ID').plot('var1','var2')
for ax in axs.values():
ax.set_ylabel('whatever')
...