ミリ秒単位のPOSIXタイムスタンプを表す時間列を含むcsvファイルがあります。パンダで読むと、正しくInt64と表示されますが、DatetimeIndexに変換したいと思います。今のところ、最初にそれをdatetimeオブジェクトに変換してから、それをDatetimeIndexにキャストします。
In [20]: df.time.head()
Out[20]:
0 1283346000062
1 1283346000062
2 1283346000062
3 1283346000062
4 1283346000300
Name: time
In [21]: map(datetime.fromtimestamp, df.time.head()/1000.)
Out[21]:
[datetime.datetime(2010, 9, 1, 9, 0, 0, 62000),
datetime.datetime(2010, 9, 1, 9, 0, 0, 62000),
datetime.datetime(2010, 9, 1, 9, 0, 0, 62000),
datetime.datetime(2010, 9, 1, 9, 0, 0, 62000),
datetime.datetime(2010, 9, 1, 9, 0, 0, 300000)]
In [22]: pandas.DatetimeIndex(map(datetime.fromtimestamp, df.time.head()/1000.))
Out[22]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2010-09-01 09:00:00.062000, ..., 2010-09-01 09:00:00.300000]
Length: 5, Freq: None, Timezone: None
これを行う慣用的な方法はありますか?そしてもっと重要なのは、これがパンダに一意でないタイムマップを保存するための推奨される方法ですか?