我有一个 csv 文件,其中的时间列以毫秒为单位表示 POSIX 时间戳。当我在 pandas 中读取它时,它正确地将其读取为 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
有没有一种惯用的方式来做到这一点?更重要的是,这是在 pandas 中存储非唯一时间图的推荐方式吗?