【问题标题】:pandas Series: Remove and replace NaNs with interpolated data pointpandas 系列:用插值数据点删除和替换 NaN
【发布时间】:2021-08-03 07:14:54
【问题描述】:

我有一个熊猫系列,我目前刚刚使用它重新取样

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..)。这可能吗?如果可以,怎么做?

【问题讨论】:

    标签: python pandas dataframe interpolation series


    【解决方案1】:

    您可以使用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
    

    【讨论】:

      猜你喜欢
      • 2021-06-22
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 2021-12-31
      • 2022-09-30
      • 2013-09-12
      相关资源
      最近更新 更多