2016-04-05 4 views
2

У меня есть дата-рамка с столбцом даты и столбцом часа.python/pandas - преобразование чисел даты и времени в datetime

 DATE   HOUR 
    2015-1-1   1 
    2015-1-1   2 
     .   . 
     .   . 
     .   . 
    2015-1-1   24 

Я хочу, чтобы преобразовать эти столбцы в формат даты и времени что-то вроде: 2015-12-26 01:00:00

+0

Я не уверен, что это полезно, поскольку вы используете фрейм данных. Если вы читаете csv, вы можете использовать: datetime.datetime.strptime («2015-1-1 01», «% Y-% m- % d% H "), где вы можете комбинировать дату и час как строку – okkhoy

+0

@okkhoy. Я также дам этому попытку. Основной источник - от csv, поэтому, возможно, перед созданием окончательного фрейма данных я могу отформатировать csv. Благодаря! – sndrosilva

ответ

6

Вы могли бы сначала преобразовать df.DATE в колонку даты и времени и добавить df.HOUR дельта через timedelta64[h]

In [10]: df 
Out[10]: 
     DATE HOUR 
0 2015-1-1  1 
1 2015-1-1  2 
2 2015-1-1 24 

In [11]: pd.to_datetime(df.DATE) + df.HOUR.astype('timedelta64[h]') 
Out[11]: 
0 2015-01-01 01:00:00 
1 2015-01-01 02:00:00 
2 2015-01-02 00:00:00 
dtype: datetime64[ns] 

Или используйте pd.to_timedelta

In [12]: pd.to_datetime(df.DATE) + pd.to_timedelta(df.HOUR, unit='h') 
Out[12]: 
0 2015-01-01 01:00:00 
1 2015-01-01 02:00:00 
2 2015-01-02 00:00:00 
dtype: datetime64[ns] 
+0

Это работает отлично! Спасибо за быстрый ответ – sndrosilva

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