如何在不更改一列的情况下重新采样数据帧中的数据?

时间:2019-07-09 05:47:42

标签: python pandas csv numpy

例如,我有几行要重新采样到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()

1 个答案:

答案 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()