[英]How can I convert hour of day and minute of hour to a datetime?
我每分钟都有一整年的数据:
dayofyear hourofday minuteofhour
1 0 0
.
.
365 23 57
365 23 58
365 23 59
我将dayofyear
转换为日期:
df['date']=pd.to_datetime(df['dayofyear'], unit='D', origin=pd.Timestamp('2009-12-31'))
dayofyear hourofday minuteofhour date
1 0 0 2010-01-01
1 0 1 2010-01-01
1 0 2 2010-01-01
1 0 3 2010-01-01
1 0 4 2010-01-01
如何将hourofday
和minuteofhour
与date
结合起来以创建正确的时间戳?
可能像这样: '2010-12-30 19:00:00'
这样我以后就可以在熊猫中执行其他时间过滤/子集等。
将hourofday
和minuteofhour
列转换为 TimeDelta,然后将其添加到date
列:
df['timestamp'] = df['date'] + pd.to_timedelta(df['hourofday'].astype('str') + ':' + df['minuteofhour'].astype('str') + ':00')
import pandas as pd
from datetime import datetime, timedelta
df = pd.DataFrame({
'dayofyear': (365, ),
'hourofday': (23, ),
'minuteofhour': (57, ),
})
def parse_dt(x):
dt = datetime(2010, 1, 1) + timedelta(int(x['dayofyear']) - 1)
dt = dt.replace(hour=x['hourofday'], minute=x['minuteofhour'])
x['dt'] = dt
return x
df = df.apply(parse_dt, axis=1)
print(df)
# dayofyear hourofday minuteofhour dt
#0 365 23 57 2010-12-31 23:57:00
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.