Pandas はコピーとビューをいつ生成しますか?
Pandas データフレーム内のデータにアクセスすると、特定の操作ではビュー (元のデータへの参照) が返されますが、他の操作ではビュー (元のデータへの参照) が返されます。コピーを生成します。この動作を管理するルールを理解することは、効率的なデータ操作にとって重要です。
一般ルール
-
オペレーションのコピー生成: 以下にリストされているものを除くすべてのオペレーションは、通常、コピーを作成します。 .
-
インプレース変更: inplace=True が指定されている場合、一部の操作で元のデータフレームを直接変更できます。
インデクサー
-
Set Indexers: 値を設定するインデクサー (例: .loc、.iloc、.iat、.at) は、その場で変更を実行します。
-
Get Indexers on Single -Dtyped Objects: Get インデクサーは、多くの場合、単一データ型オブジェクトのビューを返します (ただし、この動作はメモリ レイアウトによって異なる場合があります)。
-
Multi-Dtyped Objects の Get Indexers: Get複数のデータ型を持つオブジェクトのインデクサーは常にコピーを返します。
分析例
指定された例では、
<code class="python">df[df.C <= df.B].ix[:,'B':'E']</code>
ログイン後にコピー
チェーン インデックス付き選択は確実に維持されません。元のデータフレームのビュー。代わりに、正しい構文を使用してください:
<code class="python">df.loc[df.C <= df.B, 'B':'E']</code>
ログイン後にコピー
予期しない動作の回避
予期しない動作を防ぐには、次の慣例に従ってください:
- .loc を使用する行ベースの選択にはインデクサーを使用し、整数ベースの選択には .iloc を使用します。
- インデクサーをチェーンするのではなく、インデクサー引数内にクエリ条件を配置します。
これらのルールに従うことで、次のことが可能になります。 Pandas データフレーム内のコピーとビューを効果的に管理し、効率的なデータ操作と予測可能な結果を保証します。
以上がPandas はコピーとビューをいつ作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。