Python Pandas-понимание inplace=True
на pandas
библиотека много раз есть возможность изменить объект inplace, например, с помощью следующего оператора...
df.dropna(axis='index', how='all', inplace=True)
мне любопытно, что возвращается, а также как объект обрабатывается, когда inplace=True
передается против when inplace=False
.
все операции модификации self
, когда inplace=True
? И когда inplace=False
- Это новый объект, созданный сразу же, например new_df = self
а то new_df
возвращается?
3 ответов
, когда inplace=True
передается, данные переименовываются на месте (он ничего не возвращает), поэтому вы бы использовали:
df.an_operation(inplace=True)
, когда inplace=False
передается (это значение по умолчанию, поэтому не обязательно), выполняет операцию и возвращает копию объекта, поэтому вы должны использовать:
df = df.an_operation(inplace=False)
то, как я использую это
# Have to assign back to dataframe (because it is a new copy)
df = df.some_operation(inplace=False)
или
# No need to assign back to dataframe (because it is on the same copy)
df.some_operation(inplace=True)
вывод:
if inplace is False
Assign to a new variable;
else
No need to assign
Я обычно использую с numpy.
вы используете inplace=True, если вы не хотите сохранять обновленные данные в ту же переменную
data["column1"].where(data["column1"]< 5, inplace=True)
это то же самое, что...
data["column1"] = data["column1"].where(data["column1"]< 5)