Рубрики
Без рубрики

Использование интерполяции для заполнения пропущенных записей в Python

Интерполяция – это техника в Python, с которой вы можете оценить неизвестные точки данных между двумя известными точками данных. Обычно используется для пропала

Автор оригинала: Pankaj Kumar.

Интерполяция – это техника в Python, с которой вы можете оценить неизвестные точки данных между двумя известными точками данных. Обычно используется для заполнения пропущенных значений в таблице или наборе данных с использованием уже известных значений.

Интерполяция – это техника, которая также используется в обработке изображений. При расширении изображения вы можете оценить значение пикселя для нового пикселя, используя соседние пиксели.

Финансовые аналитики также используют интерполяцию для прогнозирования финансового будущего, используя знание DataPoints из прошлого.

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

Pandas DataFrame предоставляет .interpolate () Метод Что вы можете использовать для заполнения пропущенных записей в ваших данных.

Давайте создадим некоторые фиктивные данные и посмотрите, как работает интерполяция.

Использование интерполяции для отсутствующих значений в данных серии

Давайте создадим серию Panda с отсутствующим значением.

import pandas as pd
import numpy as np
a=pd.Series([0, 1, np.nan, 3,4,5,7])

1. Линейная интерполяция

Как вы можете увидеть значение во втором индексе Нан Отказ Интерполировать данные со следующей строкой кода:

a.interpolate()

Выход выходит как.:

0    0.0
1    1.0
2    2.0
3    3.0
4    4.0
5    5.0
6    7.0

Пандас предлагает несколько методов интерполяции. Линейная интерполяция – это метод по умолчанию в случае, если ничего не указано.

Давайте попробуем другой тип интерполяции на одни и те же данные.

2. Полиномиальная интерполяция

Полиномиальная интерполяция требует от вас указать заказ. Давайте попробуем интерполировать с порядком 2.

a.interpolate(method='polynomial', order=2)

Выход выходит как:

0    0.00000
1    1.00000
2    1.99537
3    3.00000
4    4.00000
5    5.00000
6    7.00000

Если вы предоставляете заказ как 1 в полиномиальной интерполяции, вы получаете тот же выход, что и линейная интерполяция. Это связано с тем, что полиномиальный порядок 1 является линейным.

a.interpolate(method='polynomial', order=1)

Выход:

0    0.0
1    1.0
2    2.0
3    3.0
4    4.0
5    5.0
6    7.0

2. Интерполяция через прокладку

Интерполяция через прокладку означает копирование значения непосредственно перед отсутствующей записью.

При использовании запрещенной интерполяции вам нужно указать предел. Предел – это максимальное количество Nans, способ может заполнить последовательно.

Давайте посмотрим, как это работает в Python.

a.interpolate(method='pad', limit=2)

Мы получаем вывод как:

0    0.0
1    1.0
2    1.0
3    3.0
4    4.0
5    5.0
6    7.0

Недостатная запись заменяется тем же значением, что и в том, что в записи до него.

Мы указали предел как 2, давайте посмотрим, что происходит в случае трех последовательных нансов.

a=pd.Series([0, 1, np.nan, np.nan, np.nan, 3,4,5,7])
a.interpolate(method='pad', limit=2)

Выход поставляется как:

0    0.0
1    1.0
2    1.0
3    1.0
4    NaN
5    3.0
6    4.0
7    5.0
8    7.0

Третий нан оставляется нетронутым.

Интерполяция в Pandas DataFrames

Мы также можем использовать интерполяцию для заполнения пропущенных значений в PandaFrame PandaS.

Давайте создадим фиктивную DataFrame и применять интерполяцию на нем.

s = pd.DataFrame([(0.0, np.nan, -2.0, 2.0), (np.nan, 2.0, np.nan, 1), (2.0, 5.0, np.nan, 9.0), (np.nan, 4.0, -3.0, 16.0)], columns=list('abcd'))
Dataframe.

1. Линейная интерполяция с PandaS DataFrame

Чтобы применить линейную интерполяцию на DataFrame, используйте следующую строку кода:

s.interpolate()

Выход:

Линейная интерполяция

Здесь первая стоимость под B колонна Все еще NAN, так как нет известной точки данных перед его интерполяцией.

Вы также можете интерполировать отдельные столбцы DataFrame.

s['c'].interpolate()

Выход:

0   -2.000000
1   -2.333333
2   -2.666667
3   -3.000000

2. Интерполяция через прокладку

Чтобы применить метод прокладки Используйте следующую строку кода:

s.interpolate(method='pad', limit=2)

Мы получаем вывод как:

Прокладка

Заключение

Это руководство было о интерполяции в Python. Мы специализируемся на использовании интерполяции для заполнения пропущенных данных с использованием Panda. Надеюсь, у вас было весело интерполировать с нами!