繁体   English   中英

如何将一天中的小时数和小时数转换为日期时间?

[英]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

如何将hourofdayminuteofhourdate结合起来以创建正确的时间戳?

可能像这样: '2010-12-30 19:00:00'

这样我以后就可以在熊猫中执行其他时间过滤/子集等。

hourofdayminuteofhour列转换为 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM