我有一个数据集,其中包含来自锻炼数据(心率,瓦特等)的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