Pandas系列:删除NAN并用插值数据点替换NAN

2024-09-28 22:42:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫系列,目前我刚刚使用

signal = pd.Series(thick, index = pd.TimedeltaIndex(time_list_thick,unit = 's'))
resampled_signal = signal.resample('1S').mean()

但是,我的重采样数据包含我要删除的NAN:

00:00:00.415290    451.369402
00:00:01.415290           NaN
00:00:02.415290    451.358724
00:00:03.415290    451.356055
00:00:04.415290    451.350716
00:00:05.415290    451.340039
00:00:06.415290           NaN
00:00:07.415290    451.332031
00:00:08.415290    451.326692
00:00:09.415290    451.318684
00:00:10.415290    451.310675
00:00:11.415290           NaN
00:00:12.415290    451.302667
00:00:13.415290    451.291990
00:00:14.415290           NaN
00:00:15.415290    451.286651
00:00:16.415290    451.278643
00:00:17.415290    451.274639
00:00:18.415290    451.265296
00:00:19.415290           NaN
00:00:20.415290    451.255953
00:00:21.415290           NaN
00:00:22.415290    451.243941
00:00:23.415290           NaN
00:00:24.415290    451.234598
00:00:25.415290           NaN
00:00:26.415290    451.225255
00:00:27.415290    451.219916
00:00:28.415290    451.211908
00:00:29.415290    451.201231

我想做的是用插值点替换这些NaN,插值点的值位于最近的有限数据点之间(例如:我的数据中的第2行大约为451.364..)。这可能吗?如果可能,如何实现


Tags: 数据indexsignaltimeunitnanmeanlist
1条回答
网友
1楼 · 发布于 2024-09-28 22:42:50

您可以使用df.interpolate()来执行此操作。此外,可以使用time方法来考虑基于时间的索引

详情如下:

import pandas as pd
import datetime
import numpy as np


todays_date = datetime.datetime.now().date()
index = pd.date_range(todays_date, periods=10, freq='D')
A = np.random.rand(10)
A[1::4] = np.nan
df = pd.DataFrame({'A': A }, index=index)
df['A'] = df['A'].interpolate(method='time')

之前:

                   A
2021-08-03  0.360953
2021-08-04       NaN
2021-08-05  0.801508
2021-08-06  0.927827
2021-08-07  0.532153
2021-08-08       NaN
2021-08-09  0.897129
2021-08-10  0.713843
2021-08-11  0.709481
2021-08-12       NaN

之后:

                   A
2021-08-03  0.360953
2021-08-04  0.581230
2021-08-05  0.801508
2021-08-06  0.927827
2021-08-07  0.532153
2021-08-08  0.714641
2021-08-09  0.897129
2021-08-10  0.713843
2021-08-11  0.709481
2021-08-12  0.709481

相关问题 更多 >