簡體   English   中英

如何在時間序列數據中引入缺失值

[英]How to introduce missing values in time series data

我是 python 的新手,也是這個站點的新手。 我和我的同事正在研究時間序列數據集。 我們希望在數據集中引入一些缺失值,然后使用一些技術來填充缺失值,看看這些技術在數據插補任務中的表現如何。 我們目前面臨的挑戰是如何以連續的方式而不是隨機地將缺失值引入數據集。 例如,我們想用 NaN 替換一段時間內的數據,例如連續 3 天。 如果有人能指出我們如何完成這項工作的正確方向,我將不勝感激。 我們正在使用python。

這是我的示例數據

有一種填充 NaN 的方法

dataframe['name_of_column'].fillna('value')

請參閱下面的set_missing_data函數:

import numpy as np
np.set_printoptions(precision=3, linewidth=1000)

def set_missing_data(data, missing_locations, missing_length):
    for i in missing_locations:
        data[i:i+missing_length] = np.nan


np.random.seed(0)
n_data_points = np.random.randint(40, 50)
data = np.random.normal(size=[n_data_points])
n_missing = np.random.randint(3, 6)
missing_length = 3
missing_locations = np.random.choice(
    n_data_points - missing_length,
    size=n_missing,
    replace=False
)
print(data)
set_missing_data(data, missing_locations, missing_length)
print(data)

控制台輸出:

[ 0.118  0.114  0.37   1.041 -1.517 -0.866 -0.055 -0.107  1.365 -0.098 -2.426 -0.453 -0.471  0.973 -1.278  1.437 -0.078  1.09   0.097  1.419  1.168  0.947  1.085  2.382 -0.406  0.266 -1.356 -0.114 -0.844  0.706 -0.399 -0.827 -0.416 -0.525  0.813 -0.229  2.162 -0.957  0.067  0.206 -0.457 -1.06   0.615  1.43  -0.212]
[ 0.118    nan    nan    nan -1.517 -0.866 -0.055 -0.107    nan    nan    nan -0.453 -0.471  0.973 -1.278  1.437 -0.078  1.09   0.097    nan    nan    nan  1.085  2.382 -0.406  0.266 -1.356 -0.114 -0.844  0.706 -0.399 -0.827 -0.416 -0.525  0.813 -0.229  2.162 -0.957  0.067  0.206 -0.457 -1.06   0.615  1.43  -0.212]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM