2015-12-02 24 views
6

Tôi muốn thay đổi Ngày giờ (2014-12-23 00:00:00) thành unixtime. Tôi đã thử nó với chức năng Datetime nhưng nó không hoạt động. Tôi có tem thời gian trong một mảng.Pandas datetime để unixtime

Zeit =np.array(Jahresgang1.ix[ :,'Zeitstempel']) 
t = pd.to_datetime(Zeit, unit='s') 
unixtime = pd.DataFrame(t) 
print unixtime 

Thanks a lot

+0

Giả sử rằng dtype của bạn là 'datetime64' thì sau đây dường như làm những gì bạn muốn: '(t.astype (np.int64)/1e6) .astype (np.uint64)' – EdChum

+0

Phương pháp khác là: '(t - dt.datetime (1970,1,1)) .tt .total_seconds() ' – EdChum

+0

Cảm ơn bạn rất nhiều lần nữa. Bạn có alsways câu trả lời đúng cho tôi :) –

Trả lời

8

Tôi nghĩ rằng bạn có thể trừ ngày 1970-1-1 để tạo ra một timedelta và sau đó truy cập vào thuộc tính total_seconds:

In [130]:  
s = pd.Series(pd.datetime(2012,1,1)) 
s 

Out[130]: 
0 2012-01-01 
dtype: datetime64[ns] 

In [158]: 
(s - dt.datetime(1970,1,1)).dt.total_seconds() 

Out[158]: 
0 1325376000 
dtype: float64 
+0

Làm thế nào tôi có thể thêm 1h vào unixtime , bởi vì tôi sống ở UTC: + 1h –

+0

Bạn có thể thêm một timedelta trước các phép tính ở trên: 's + pd.Timedelta (1, 'h')' hoặc trong trường hợp của bạn 't + pd.Timedelta (1, 'h ') ' – EdChum

+1

Trên thực tế, cách chính xác sẽ làm cho việc nhận biết múi giờ của datetimes, ví dụ 's.dt.tz_localize ('utc')' hoặc bất kỳ múi giờ nào bạn muốn – EdChum

Các vấn đề liên quan