根据某些条件更新熊猫数据框的列中的特定位置

时间:2019-06-25 09:03:13

标签: python pandas dataframe

例如,我数据框的其中一列具有如下数据:

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

我们该怎么做?

我尝试将列格式化为特定的日期格式类型,但是找不到解决方法。

1 个答案:

答案 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