2017-03-09 11 views
0

私は約100万行のデータセットを持っています。私は12カラムをdatetimeに変換したいと思います。現在、それらは「オブジェクト」タイプです。私はこれまでこれを行うことができると読んでいます:多くの変数をPandasのdatetimeに変更する - Python

data.iloc[:,7:19] = data.iloc[:,7:19].apply(pd.to_datetime, errors='coerce') 

これは機能しますが、パフォーマンスは非常に悪いです。

def lookup(s): 
""" 
This is an extremely fast approach to datetime parsing. 
For large data, the same dates are often repeated. Rather than 
re-parse these, we store all unique dates, parse them, and 
use a lookup to convert all dates. 
""" 
dates = {date:pd.to_datetime(date) for date in s.unique()} 
return s.apply(lambda v: dates[v]) 

をしかし、私は(私は初心者です)私のデータにこのコードを適用するかどうかはわかりません:パフォーマンスを言及した他の誰かを行うことで高速化することができます。誰もこのコードや他の方法を使用してdatetimeに多くの列を変更するスピードアップ方法を知っていますか?ありがとう!

+1

を取得するにはパンダAPIをアップになりますが、すべてのあなたの日付が同じ形式を持っていますか – Vaishali

+0

良い作品? – MaxU

+0

はい、すべての日付が同じです。 – user3910919

答えて

0

すべての日付が同じ形式である場合は、dateparse関数を定義して、インポート時に引数として渡します。最初にdatetimeをインポートし、datetime.strfを使用します(#ここでフォーマットを定義します)。

この関数が定義されると、pandasで解析日オプションをTrueに設定すると、日付パーサーを呼び出すオプションがあります。あなたはdate parser = yourfunctionを入れます。

CSV、pd.read_csv(parse_dates = true)を読みながら、私はparse_dates引数を使用して、特定の構文に大規模なデータフレームのために

関連する問題