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.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 サイトの他の関連記事を参照してください。