我有以下Pandas DataFrame:
date hour
20140101 0
20140101 1
20140101 2
20140101 3
20140101 4
... ...
我想将这两者合并到一个日期时间列中。我已经尝试了以下方法,但是由于我使用的是Windows而出现错误,我认为:
wdf['date'] = wdf['date'].astype(str) + ' ' + wdf['hour'].astype(str)
wdf['date'] = pd.to_datetime(wdf['date'], format='%Y%m%d %-H')
值错误:"-"是格式为"%Y%m%d %-H"的错误指令
我已经尝试过%#H
,但这导致了类似的错误。我必须使用破折号或井号,因为小时表示法是单个小数。
我会尝试使用zfill
在需要时填充0
,并使用常规%H
。
试试这个:
wdf['date'] = wdf['date'].astype(str) + ' ' + wdf['hour'].astype(str).str.zfill(2)
wdf['date'] = pd.to_datetime(wdf['date'], format='%Y%m%d %H')
输出:
date hour
0 2014-01-01 00:00:00 0
1 2014-01-01 01:00:00 1
2 2014-01-01 02:00:00 2
3 2014-01-01 03:00:00 3
4 2014-01-01 04:00:00 4