使用 Windows 在 Pandas 中解析单个小数小时

Parsing single decimal hour in Pandas using Windows

我有以下 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')

ValueError: '-' is a bad directive in format '%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