ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame の変更が元の DataFrame に影響を与える場合があるのはなぜですか?
Pandas でのデータフレームのコピーの必要性を理解する
Pandas データフレームを操作する場合、データフレームのコピーを作成するかどうかの選択データフレームは重大な影響を与える可能性があります。デフォルトでは、データフレームにインデックスを付けると、元のデータ構造への参照が返されます。したがって、サブセットに加えられた変更は親フレームを直接変更します。
この動作を説明するために、次の例を考えてみましょう。
df = pd.DataFrame({'x': [1, 2]}) df_sub = df[0:1] df_sub.x = -1 print(df)
出力:
x 0 -1 1 2
ご覧のとおり、サブセットの値を変更すると、元のデータフレーム内の対応する値が直接変更されます。
元のデータフレームを変更から保護することが不可欠な状況では、コピーが必要です。これは、.copy() メソッドを使用して実現できます。以下に例を示します。
df_sub_copy = df[0:1].copy() df_sub_copy.x = -1 print(df)
出力:
x 0 1 1 2
この場合、.copy() により、df_sub_copy に加えられた変更が元の df に影響を与えないことが保証されます。
この動作はディープ コピーにのみ適用されること、つまり参照データ全体が新しいオブジェクトにコピーされることを理解することが重要です。対照的に、浅いコピーでは、元のデータと同じ基になるデータを参照する新しいオブジェクトが作成されます。したがって、浅いコピーに加えられた変更は、元のデータフレームにも影響します。
以上がPandas DataFrame の変更が元の DataFrame に影響を与える場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。