Pandas で DataFrame をコピーすることが不可欠なのはなぜですか?
DataFrame のサブセットを取得する場合、プログラマがコピーの作成を推奨する理由を理解することが重要です.copy() メソッドを使用します。デフォルトでは、Pandas で DataFrame をサブセットすると元の DataFrame への参照が返されます。つまり、サブセットに加えられた変更は親 DataFrame に影響します。
コピーしない場合はどうなりますか?
コピーを作成せずにサブ DataFrame を変更すると、親 DataFrame が直接変更されます。例:
df = pd.DataFrame({'x': [1, 2]}) df_sub = df[0:1] df_sub.x = -1
これらの変更後に df を出力すると、サブデータフレームを変更しただけであるにもかかわらず、最初の行の x の値が -1 に変更されていることがわかります。
コピーの利点
コピーを作成すると、親 DataFrame から独立した新しいオブジェクトが作成されます。コピーに加えられた変更は、オリジナルには影響しません。これは、DataFrame 全体を意図せず変更することなく、データのサブセットに対して操作を実行したい場合に重要です。
df_sub_copy = df[0:1].copy() df_sub_copy.x = -1
この場合、df は変更されず、元の値が維持されます。
注: .copy() メソッドは Pandas の新しいバージョンでは非推奨になったことを強調することが重要です。代わりに、データの整合性を確保しながら DataFrame をスライスできる .loc および .iloc インデックス作成メソッドを使用することをお勧めします。
以上がDataFrame をサブセット化するときに Pandas が `.copy()` の使用を推奨するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。