时间采用YYYYMMDDHH格式。第一次2010010101,增加1小时,到达2010010124,然后到2010010201。
date
0 2010010101
1 2010010124
2 2010010201
df['date'] = pd.to_datetime(df['date'], format ='%Y%m%d%H')
我遇到错误:
'int'对象无法切片
如果我跑步:
df2['date'] = pd.to_datetime(df2['date'], format ='%Y%m%d%H', errors = 'coerce')
所有'24'小时都标记为NaT。
[
答案 0 :(得分:1)
时间从00(午夜)开始到23,因此您日期中的时间24是第二天的00。一种方法是定义一个自定义的to_datetime以处理日期格式。
df = pd.DataFrame({'date':['2010010101', '2010010124', '2010010201']})
def custom_to_datetime(date):
# If the time is 24, set it to 0 and increment day by 1
if date[8:10] == '24':
return pd.to_datetime(date[:-2], format = '%Y%m%d') + pd.Timedelta(days=1)
else:
return pd.to_datetime(date, format = '%Y%m%d%H')
df['date'] = df['date'].apply(custom_to_datetime)
date
0 2010-01-01 01:00:00
1 2010-01-02 00:00:00
2 2010-01-02 01:00:00