Vì DatetimeIndex
là ndarray
dưới mui xe, bạn có thể thực hiện chuyển đổi mà không cần hiểu (nhanh hơn nhiều).
In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: from datetime import datetime
In [4]: dates = [datetime(2012, 5, 1), datetime(2012, 5, 2), datetime(2012, 5, 3)]
...: index = pd.DatetimeIndex(dates)
...:
In [5]: index.astype(np.int64)
Out[5]: array([1335830400000000000, 1335916800000000000, 1336003200000000000],
dtype=int64)
In [6]: index.astype(np.int64) // 10**9
Out[6]: array([1335830400, 1335916800, 1336003200], dtype=int64)
%timeit [t.value // 10 ** 9 for t in index]
10000 loops, best of 3: 119 us per loop
%timeit index.astype(np.int64) // 10**9
100000 loops, best of 3: 18.4 us per loop
Tôi đã bực mình vì tôi không thể nhớ làm thế nào để truy cập vào mảng này, tất nhiên đó là '.as_type (int64)' :) –
@AndyHayden - thường thì đó là cách khác :) – root