パンダ使用のコードの多くの場所では、Python関数process(row)
があります。この関数はDataFrame.iterrows()
を超えて使用され、それぞれrow
をとり、何らかの処理を行い、究極的にはSeries
となる値を返します。Python関数を使用してDataFrame行を効率的に処理できますか?
この使用パターンは、numpy/Pandasスタックのパフォーマンス上の利点のほとんどを回避しています。
- をできるだけ効率的に使用するにはどうすればよいでしょうか?
- 私たちのコードのほとんどを書き直すことなくそれを行うことはできますか?
この質問のもう1つの側面:このような機能はすべて、数値効率の良い表現に変換できますか?私はnumpy/scipy/Pandasスタックについて多くのことを学んできましたが、真に任意のロジックのために、上記のような遅い純粋なPythonアーキテクチャを使用する必要があることがあります。それは事実ですか?
数学を行う場合は、ベクトル化された操作を行うことができます。文字列やその他の固定サイズのデータ型を使用している場合は、数値を数値化してベクタライズした後、行ベースで残りのデータを処理することもできます。 –