Python在组内重采样和插值

2024-05-19 18:49:23 发布

您现在位置: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


Tags: 数据iddfindexgroupactivitynan心率