Как убрать пропуски данных в дата сете

Написал код, чтобы появлялись пропущенные значения. И хотелось бы понять можно ли их как то заполнить при том что они появляются рандомно? Вот сам код:

import random
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
a = np.linspace(0, 25, 100)
a = np.sin(a) + [random.gauss(0, 0.2) for i in range(len(a))]
for i in range(10):
    a[random.randint(0, len(a) - 1)] = None
#здесь как я понимаю импутация
plt.plot(a)

Ответы (1 шт):

Автор решения: CrazyElf

Поскольку пропуски одиночные, проще всего наверное использовать Pandas:

for i in range(10):
    a[random.randint(0, len(a) - 1)] = np.nan
s = pd.Series(a)
s = s.fillna(method='pad')
plt.plot(s);
  • в пропусках должно быть специальное значение np.nan, а не None (хотя это можно легко переделать, если там будет всё же None)
  • делаем Pandas Series из numpy array
  • используем специальную функцию fillna, используя для заполнения предыдущее значение серии
→ Ссылка