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)