pandas
ライブラリには、次のステートメントのように、オブジェクトをインプレースで変更するオプションが何度もあります...
df.dropna(axis='index', how='all', inplace=True)
inplace=True
が渡されたときとinplace=False
が渡されたときのオブジェクトの処理方法と同様に、何が返されるのか興味があります。
すべての操作がinplace=True
のときにself
を変更していますか?そして、inplace=False
がnew_df = self
のようにすぐに作成された新しいオブジェクトで、その後new_df
が返される場合
inplace=True
が渡されると、データはその場で名前が変更される(何も返されない)ので、次を使用します。
df.an_operation(inplace=True)
inplace=False
が渡されると(これはデフォルト値であるため、必要ありません)、操作を実行してオブジェクトのコピーを返すため、以下を使用します。
df = df.an_operation(inplace=False)
そう:
if inplace == False:
Assign your result to a new variable
else
No need to assign
私の使い方は
# 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)