例如,我有几行要重新采样到1秒的时间范围,但是我需要保留列ID。
time id acc step
00:00:01.2 1 1.2 10
00:00:01.6 1 1.4 20
00:00:01.9 1 1.1 10
我当前的代码仅是基于每一列进行重新采样,而在保留“ id”列方面我需要帮助。谢谢!
data = data.resample('1S').agg({'acc': np.mean, 'step': np.sum}).dropna()
答案 0 :(得分:3)
我认为您也需要为id
列添加聚合-例如Resampler.first
:
data = data.resample('1S').agg({'acc': np.mean, 'step': np.sum, 'id':'first'}).dropna()
但是如果需要按id
分组并重新采样:
data = data.groupby('id').resample('1S').agg({'acc': np.mean, 'step': np.sum}).dropna()
或使用Grouper
解决方案:
data=data.groupby(['id',pd.Grouper(freq='1s')]).agg({'acc': np.mean, 'step': np.sum}).dropna()