3
Pandasのパフォーマンスは、既存の列から新しい列を作成するためにnp.vectorizeに適用されます
Pandasデータフレームを使用していて、既存の列の関数として新しい列を作成したいと思います。私はとの速度差の良い議論を見ていないdf.apply()とnp.vectorize()私は、私はここに求めるだろうと思ったので、。 パンダのapply()機能は遅いです。私が測定したもの(いくつかの実験で以下に示す)から、少なくとも私の2016 MacBook Proでは、np.vectorize()使用はDataFrame関数を使用するよりも25倍高速(またはそれ以上)ですapply()。これは期待される結果ですか、そしてその理由は何ですか? たとえば、次のN行のあるデータフレームがあるとします。 N = 10 A_list = np.random.randint(1, 100, N) B_list = np.random.randint(1, 100, N) df = pd.DataFrame({'A': A_list, 'B': B_list}) df.head() # A B # 0 78 50 # 1 23 91 # 2 55 62 # 3 82 64 # 4 99 80 さらに、2つの列Aとの関数として新しい列を作成するとしBます。以下の例では、単純な関数を使用しますdivide()。関数を適用するには、df.apply()またはのいずれかを使用できますnp.vectorize(): def …