Автор оригинала: Pankaj Kumar.
Когда мы начинаем работу с pandas или даже просматриваем веб-сайты для запросов, связанных с операциями pandas, мы часто сталкиваемся с параметром inplace , присутствующим в коде. Значение по умолчанию для in place равно False.
В этой статье мы рассмотрим функцию параметра inplace при выполнении операций с фреймом данных.
Что Делает Параметр inplace?
inplace=True
используется в зависимости от того, хотим ли мы внести изменения в исходный df или нет.
Давайте рассмотрим операцию удаления строк, из которых были удалены записи NA. у нас есть фрейм данных (df).
df.dropna(axis='index', how='all', inplace=True)
В Панд приведенный выше код означает:
- Панды создают копию исходных данных.
- Выполняет на нем необходимую операцию.
- Присваивает результаты исходным данным. (Важный момент, который следует рассмотреть здесь).
- Затем удаляет копию.
Приведенный выше код не возвращает ничего, кроме изменения исходного фрейма данных .
Если inplace имеет значение False
, то pandas вернет копию фрейма данных с выполненными над ним операциями.
В Pandas у нас есть много функций, которые имеют параметр inplace
.
Итак, когда мы делаем df.dropna(axis='index',,)
панды знают, что мы хотим изменить исходный фрейм данных, поэтому он выполняет необходимые изменения в исходном фрейме данных.
На месте В действии
Давайте посмотрим на параметр inplace в действии. Мы выполним операцию сортировки в наборе данных IRIS, чтобы продемонстрировать назначение параметра inplace
.
Вы можете узнать больше о загрузке набора данных iris здесь .
# Importing required libraries from sklearn.datasets import load_iris import pandas as pd #Loading the dataset data = load_iris(as_frame=True) df = pd.DataFrame(data.data) df
Теперь давайте выполним операцию сортировки по длине лепестка
функции
df.sort_values('petal length (cm)' , ascending = True) #inplace by default set to False
Теперь давайте проверим, что произошло с нашим исходным фреймом данных.
df
Мы просто получили исходный фрейм данных при печати даже после того, как применили к нему операцию сортировки.
Так… что только что произошло?
Приведенный выше пример лучше всего демонстрирует применение параметра inplace.
По умолчанию установлено значение False, и из-за этого операция не изменяет исходный кадр данных. Вместо этого он возвращает копию, на которой выполняются операции.
Как и в приведенном выше коде, мы не назначили возвращаемый фрейм данных какой-либо новой переменной, мы не получили новый фрейм данных, который сортируется.
new_df = df.sort_values('petal length (cm)' , ascending = True , inplace=False) new_df
Мы просто назначили возвращенный фрейм данных переменной, которую мы назвали new_df.
Теперь это отсортированная копия исходного фрейма данных.
Важным моментом, который следует учитывать здесь, является то, что исходный фрейм данных по-прежнему остается прежним и претерпел все указанные нами преобразования.
Теперь давайте посмотрим, что произойдет, если мы установим на место
df.sort_values('petal length (cm)' , ascending = True , inplace = True)
Запуск кода, похоже, не возвращает выходных данных. но подождите…!
После проверки исходного фрейма данных мы получаем суть того, что делает на месте
.
df
Исходный фрейм данных был изменен после того, как мы установили в Python.
Вывод
Эта статья была полностью посвящена параметру inplace. Теперь у нас есть определенное представление об этом скрытом параметре, который часто находится в функции, даже не осознавая этого.
В качестве заключительной мысли, мы должны быть очень осторожны при использовании, поскольку он изменяет исходный фрейм данных.
Счастливого Обучения!