pandas ライブラリを多用する Python コードをいくつか書きました。コードが少し遅いように見えるので、cProfile を実行して、ボトルネックがどこにあるかを確認しました。cProfile の結果によると、ボトルネックの 1 つは pandas.lib_scalar_compare の呼び出しです。
1604 262.301 0.164 262.301 0.164 {pandas.lib.scalar_compare}
私の質問はこれです - これはどのような状況で呼び出されますか? DataFrame の一部を選択するときに想定します。私のコードは次のようになります。
if (var=='9999'):
dataTable=resultTable.ix[(resultTable['col1'] == var1)
& (resultTable['col2']==var2)].copy()
else:
dataTable=resultTable.ix[(resultTable['col1'] == var1)
& (resultTable['col2']==var2)
& (resultTable['col3']==int(val3))].copy()
次の質問があります。
- それは、ボトルネックの原因となっているコードを最終的に呼び出すコード スニペットですか?
- もしそうなら、これを最適化する方法はありますか?現在使用している pandas のバージョンはpandas-0.8です。
これに関するヘルプは大歓迎です。