Склеарн или Панды, вменяют пропущенные значения с помощью простой линейной регрессии - PullRequest
0 голосов
/ 22 октября 2018

У меня есть данные, данные временных рядов, и я хочу вменять недостающие данные.я не могу использовать среднее значение столбца, потому что я думаю, что это не хорошо для данных временных рядов.поэтому я хочу, чтобы простая линейная регрессия вменяла это

Day, Price
 1 , NaN
 2, NaN
 3, 1800
 4, 1900
 5, NaN
 6, NaN
 7, 2000
 8, 2200

Как это сделать?

Я предпочитаю делать это с помощью Pandas, но если нет другого способа, я в порядке, используя sklearn:)

1 Ответ

0 голосов
/ 22 октября 2018

Вы можете сделать это, используя interpolate:

df['Price'].interpolate(method='linear', inplace=True)

Результат:

    Price   Date
0   NaN     1
1   NaN     2
2   1800.000000     3
3   1900.000000     4
4   1933.333333     5
5   1966.666667     6
6   2000.000000     7
7   2200.000000     8

Как видите, это только заполняет пропущенные значения в прямом направлении.Если вы также хотите заполнить первые два значения, используйте параметр limit_direction="both":

df['Price'].interpolate(method='linear', inplace=True, limit_direction="both")

Существуют различные методы интерполяции, например, квадратичный или сплайн, для получения дополнительной информации см. Документы: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.interpolate.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...