在组内进行Python重采样和插值

时间:2019-05-24 17:30:28

标签: python pandas interpolation

我有一个数据集,其中包含来自锻炼数据(心率,瓦特等)的1秒钟水平的样本。数据馈送不够完美,有时会有差距。我需要以1秒钟的间隔获取数据集,而不会丢失行。

一旦我对数据进行重新采样,便遵循以下思路:

    activity_id watts
t                   
1   12345       5
2   12345       NaN
3   12345       15
6   98765       NaN
7   98765       10
8   98765       12

重新采样后,我无法使插值正常工作。问题是插值遍及整个数据框,我需要针对数据框内的每个锻炼ID对其进行“重置”。数据应该正常工作后应该如下所示:

   activity_id watts
t                   
1   12345       5
2   12345       10
3   12345       15
6   98765       NaN
7   98765       10
8   98765       12

这里是我尝试过的代码段。它不会引发任何错误,但也不会进行插值...

seconds = 1
df = df.groupby(['activity_id']).resample(str(seconds) + 'S').mean().reset_index(level='activity_id', drop=True)
df = df.reset_index(drop=False)
df = df.groupby('activity_id').apply(lambda group: group.interpolate(method='linear'))

此处标记为正确答案,但对我不起作用: Pandas interpolate within a groupby

0 个答案:

没有答案