使用 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
我有以下 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