ホームページ >バックエンド開発 >Python チュートリアル >Pandas はコピーとビューをいつ作成しますか?

Pandas はコピーとビューをいつ作成しますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 13:40:031039ブラウズ

When Does Pandas Create a View vs. a Copy?

Pandas はコピーとビューをいつ生成しますか?

Pandas データフレーム内のデータにアクセスすると、特定の操作ではビュー (元のデータへの参照) が返されますが、他の操作ではビュー (元のデータへの参照) が返されます。コピーを生成します。この動作を管理するルールを理解することは、効率的なデータ操作にとって重要です。

一般ルール

  1. オペレーションのコピー生成: 以下にリストされているものを除くすべてのオペレーションは、通常、コピーを作成します。 .
  2. インプレース変更: inplace=True が指定されている場合、一部の操作で元のデータフレームを直接変更できます。

インデクサー

  1. Set Indexers: 値を設定するインデクサー (例: .loc、.iloc、.iat、.at) は、その場で変更を実行します。
  2. Get Indexers on Single -Dtyped Objects: Get インデクサーは、多くの場合、単一データ型オブジェクトのビューを返します (ただし、この動作はメモリ レイアウトによって異なる場合があります)。
  3. 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 サイトの他の関連記事を参照してください。

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