Как убрать пропуски данных в дата сете
Написал код, чтобы появлялись пропущенные значения. И хотелось бы понять можно ли их как то заполнить при том что они появляются рандомно? Вот сам код:
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, используя для заполнения предыдущее значение серии