pandas の DataFrame インデックスとして使用するために、約 10 ~ 20M の ISO 日時文字列をマイクロ秒の精度で datetime64 にすばやくキャストしたいと考えています。
私は pandas 0.9 を使用しており、gitで提案された解決策を試しましたが、20 ~ 30 分かかるか、完了しないことがわかりました。
私は問題を見つけたと思います。これら 2 つの速度を比較します。
rng = date_range('1/1/2000', periods=2000000, freq='ms')
strings = [x.strftime('%Y-%m-%d %H:%M:%S.%f') for x in rng]
timeit to_datetime(strings)
私のラップトップでは、〜300ミリ秒です。
rng = date_range('1/1/2000', periods=2000000, freq='ms')
strings = [x.strftime('%Y%m%dT%H%M%S.%f') for x in rng]
timeit to_datetime(strings)
私のラップトップで、永遠にそして一日。
数千万のスタンプのフォーマットをループして修正するのはおそらくかなり遅いので、タイムスタンプを生成するc++コードを変更して、今のところより詳細なISO形式にします...