我有一个数据框,其中包含一天中不同时间收到的车辆的 gps 位置。对于每辆车,我想重新采样每小时数据,以便我获得一天中每个小时的中值报告(根据时间戳)。对于没有相应行的小时,我想要一个空白行。我正在使用以下代码:
for i,j in enumerate(list(df.id.unique())):
data=df.loc[df.id==j]
data['hour']=data['timestamp'].hour
data_grouped=data.groupby(['imo','hour']).median().reset_index()
data = data_grouped.set_index('hour').reindex(idx).reset_index() #idx is a list of integers from 0 to 23.
由于我的数据框有数百万个 id,因此我需要花费大量时间来迭代所有这些。有没有一种有效的方法来做到这一点?
与Pandas 在 Groupby 中重新索引日期不同,我每小时有多行,除了一些小时根本没有行。