ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame で特定のセル値を効率的に設定するにはどうすればよいですか?

Pandas DataFrame で特定のセル値を効率的に設定するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-01 17:28:11
オリジナル
439 人が閲覧しました

How to Efficiently Set a Specific Cell Value in a Pandas DataFrame?

Pandas DataFrame の特定のセルの値を設定する

DataFrame を作成し、特定のセルの値を変更したいと考えています。ただし、 df.xs('C')['x'] = 10 を使用しても、DataFrame は期待どおりに更新されません。なぜですか?

問題は、df.xs() の動作方法に起因します。デフォルトでは、データのコピーを含む新しい DataFrame を返します。したがって、 df.xs('C')['x'] = 10 は、元の DataFrame ではなく、新しい DataFrame のみを変更します。

代わりに、 df['x']['C'] = を使用できます。 10. このメソッドは元の DataFrame のビューを返し、変更はすべて df に適用されます。

ただし、推奨されるアプローチは .at または.iat:

  • df.at['C', 'x'] = 10: 行 'C' と列 'x' の値を直接設定します。
  • df。 iat[2, 0] = 10: インデックス位置を使用してセルにアクセスします (行の場合は 2、行の場合は 0)列).

df.xs('C')['x'] = 10 は廃止されるのはなぜですか?

df.set_value('C' , 'x', 10) の方が大幅に高速であるため、推奨される方法です。ただし、df.set_value() は非推奨になる予定です。

パフォーマンスの比較

ベンチマークは、df.set_value() が速度の点で他のオプションよりも優れていることを示しています。

In [18]: %timeit df.set_value('C', 'x', 10)
100000 loops, best of 3: 2.9 µs per loop

In [20]: %timeit df['x']['C'] = 10
100000 loops, best of 3: 6.31 µs per loop

In [81]: %timeit df.at['C', 'x'] = 10
100000 loops, best of 3: 9.2 µs per loop
ログイン後にコピー

以上がPandas DataFrame で特定のセル値を効率的に設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート