2016-04-19 8 views

答えて

4
df = pd.DataFrame({ 
    'Day': np.array(['2010-04-24', '2012-08-20', '2016-03-06', '2016-01-02', '2010-12-21'], dtype=np.datetime64), 
    'Hour': np.array([17, 10, 9, 10, 4], dtype=np.int64)}) 

>>> pd.to_datetime(df.Day) + pd.to_timedelta(df.Hour, unit='h') 
0 2010-04-24 17:00:00 
1 2012-08-20 10:00:00 
2 2016-03-06 09:00:00 
3 2016-01-02 10:00:00 
4 2010-12-21 04:00:00 
dtype: datetime64[ns] 
1

dt.timedeltaを使用しての日に時間を追加して、列を作成するために使用する、このリスト内包:

data = {'Day':pd.to_datetime(['2010-04-24','2012-08-20','2016-03-06','2016-01-02','2010-12-21']),'Hour':[17,10,9,10,4]} 
df = pd.DataFrame(data) 
df['Datetime'] = [df.loc[x,'Day'] + dt.timedelta(hours = int(df.loc[x,'Hour'])) for x in list(df.index)] 

これはデイ列の時間/分/秒はすべて0時00分であることを前提としてい:00

戻り

Day   Hour Datetime 
2010-04-24 17  2010-04-24 17:00:00 
2012-08-20 10  2012-08-20 10:00:00 
2016-03-06 9  2016-03-06 09:00:00 
2016-01-02 10  2016-01-02 10:00:00 
2010-12-21 4  2010-12-21 04:00:00 
関連する問題