例如,我数据框的其中一列具有如下数据:
29-APR-19 11.50.00.000000000 PM
29-APR-19 11.50.00.000000000 AM
因此,我需要将具有PM的列更新为:
29-APR-19 23.50.00.000000000 PM
我们该怎么做?
我尝试将列格式化为特定的日期格式类型,但是找不到解决方法。
答案 0 :(得分:0)
如果需要相同的格式,则必须为12
以下的日期时间添加12:00:00
小时。
解决方案是先按to_datetime
转换列,然后按条件添加12
小时,对于相同格式,请使用Series.dt.strftime
:
print (df)
Date
0 29-APR-19 11.50.00.000000000 PM
1 29-APR-19 11.50.00.000000000 AM
df['Date'] = pd.to_datetime(df['Date'], format='%d-%b-%y %I.%M.%S.%f %p')
df.loc[df['Date'].dt.hour < 12] += pd.Timedelta(12, 'h')
df['Date'] = df['Date'].dt.strftime('%d-%b-%y %I.%M.%S.%f %p')
print (df)
Date
0 29-Apr-19 11.50.00.000000 PM
1 29-Apr-19 11.50.00.000000 PM