2015-12-02 4 views
6

Я хочу изменить дату и время (2014-12-23 00:00:00) в unixtime. Я попробовал его с функцией Datetime, но он не работал. Я получил штампы Datetime в массиве.Pandas datetime to unixtime

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

Большое спасибо

+0

Предполагая, что ваш DTYPE является 'datetime64' тогда следующее похоже, делает то, что вы хотите: '(t.astype (np.int64)/1e6) .astype (np.uint64)' – EdChum

+0

Другим методом является: '(t - dt.datetime (1970,1,1)). dt .total_seconds() ' – EdChum

+0

Большое спасибо снова и снова. У вас есть все правильные ответы для меня :) –

ответ

8

Я думаю, что вы можете вычесть дату 1970-1-1 создать timedelta, а затем доступ к атрибуту 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

Как добавить 1h к unixtime , потому что я живу в UTC: + 1h –

+0

Вы можете добавить timedelta перед вычислениями выше: 's + pd.Timedelta (1, 'h')' или в вашем случае 't + pd.Timedelta (1, 'h ') ' – EdChum

+1

На самом деле правильным способом было бы информирование о времени в часовом поясе, например 's.dt.tz_localize ('utc')' или любой часовой пояс, который вы хотите – EdChum

Смежные вопросы