ホームページ >バックエンド開発 >Python チュートリアル >サブセットを選択するときに常に Pandas DataFrame をコピーする必要があるのはなぜですか?
Pandas では、データ フレームの一部を選択するときに、「.copy()」を使用するのが一般的です。 ' メソッドを使用して、元のデータ フレームのコピーを作成します。このアプローチにより、サブセットに加えられた変更が親データ フレームに影響を与えないことが保証されます。
コピーを作成する理由
デフォルトでは、データ フレームにインデックスを付けると、コピーではなく、元のデータ フレームのビュー。これは、サブセットに加えられた変更は親データ フレームに直接影響することを意味します。親データ フレームの整合性を維持するには、「.copy()」メソッドを使用してコピーを作成することが不可欠です。
コピーしない場合の影響
次のコード スニペット:
df = pd.DataFrame({'x': [1, 2]}) df_sub = df.iloc[0:1] df_sub.x = -1
この例では、df_sub は df のビューです。結果として、df_sub.x を -1 に設定すると、df.x も変更されます:
print(df) x 0 -1 1 2
コピーの利点
データ フレームをコピーすると、親データ フレームが確実にコピーされます。手つかずのままです。これは、データ フレームに対して複数の操作が実行される場合に特に重要であり、後の分析や比較のために元のデータを保存することが重要です。
df_sub_copy = df.iloc[0:1].copy() df_sub_copy.x = -1 print(df) x 0 1 1 2
この変更されたコード スニペットでは、df_sub_copy は df のコピーです。結果として、df_sub_copy.x を変更しても df には影響しません。
注: 新しいバージョンの Pandas ではデータ フレームのインデックス作成の動作が変更されたことに注意することが重要です。 Pandas 1.0 以前では、データ フレームにインデックスを付けると、デフォルトでコピーが返されます。ただし、Pandas 1.1 以降では、インデックスを作成するとビューが返されます。バージョン間で一貫した動作を確保するには、データ フレームのサブセットを作成するときに常に '.copy()' メソッドを使用することをお勧めします。
以上がサブセットを選択するときに常に Pandas DataFrame をコピーする必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。