首页 > 解决方案 > Python在组内重新采样和插值

问题描述

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

标签: pythonpandasinterpolation

解决方案


推荐阅读