pandasでデータフレームのコピーを作成する必要があるのはなぜですか?質問する

pandasでデータフレームのコピーを作成する必要があるのはなぜですか?質問する

親データフレームからサブデータフレームを選択するときに、一部のプログラマーがメソッドを使用してデータフレームのコピーを作成していることに気づきました.copy()。たとえば、

X = my_dataframe[features_list].copy()

...だけではなく

X = my_dataframe[features_list]

なぜデータフレームのコピーを作成するのですか? コピーを作成しない場合はどうなりますか?

ベストアンサー1

この回答は、パンダの新しいバージョンでは非推奨となっています。ドキュメント


これは Paul の回答を拡張したものです。Pandas では、DataFrame のインデックスを作成すると、最初の DataFrame への参照が返されます。したがって、サブセットを変更すると、最初の DataFrame が変更されます。したがって、最初の DataFrame が変更されないようにしたい場合は、コピーを使用する必要があります。次のコードを考えてみましょう。

df = DataFrame({'x': [1,2]})
df_sub = df[0:1]
df_sub.x = -1
print(df)

以下が手に入ります:

   x
0 -1
1  2

対照的に、次の例では df は変更されません。

df_sub_copy = df[0:1].copy()
df_sub_copy.x = -1

おすすめ記事