Автор оригинала: 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'))
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. Надеюсь, у вас было весело интерполировать с нами!