Pandas のビュー ルールとコピー ルールを理解する
問題ステートメント
Pandas、人気の Python データ操作ライブラリは、データフレームを選択および変更するためのさまざまなメソッドを提供します。ただし、選択によって元のデータフレームのコピーまたはそのビューがいつ作成されるかを判断するのは混乱を招く可能性があります。この曖昧さにより、データを変更しようとするときに予期しない動作が発生します。
単純なルール
この混乱に対処するために、Pandas のビューとコピーの動作を制御するいくつかの簡単なルールを次に示します。 :
ルールの適用先特定のケース
あなたが言及した複雑なケースを調べてみましょう:
df[df.C <= df.B] = 7654321
この場合、インデクサーを使用した設定のルールが適用されます。条件には 2 つの列の比較が含まれるため、Pandas は条件を評価するためにデータフレームの中間コピーを作成します。このコピーはその場で変更されます。したがって、この式は元のデータフレームの値を正常に変更します。
ただし、連鎖インデックス式
df[df.C <= df.B].ix[:, 'B':'E']
はルールに違反します。 2 つのインデクサーをチェーンすると、別々の Python 操作が作成され、Pandas が確実にインターセプトすることが困難になります。これは予期しない動作を引き起こす可能性があるため、強くお勧めしません。
クエリによるデータフレームの変更
クエリに基づいてデータフレーム値を変更するには、次の方法を使用します。
df.loc[df.C <= df.B, 'B':'E'] = 7654321
この式は、クエリ条件の評価と変更する列のサブセットの指定の両方に単一のインデクサーを使用します。連鎖インデックス手法よりも高速かつ信頼性が高くなります。
以上が予期しない動作を起こさずにクエリに基づいて Pandas データフレームを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。