ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame の変更が元の DataFrame に影響を与える場合があるのはなぜですか?

Pandas DataFrame の変更が元の DataFrame に影響を与える場合があるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-08 03:21:01607ブラウズ

Why do Pandas DataFrame modifications sometimes affect the original 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。