使用熊猫根据特定列中的条件替换日期值

Suhas_mudam

在我的数据框中,有一个日期列,格式为“%d /%m /%Y”。

我想用今天的日期替换大于今天的日期。

EX:  Date
    --------
    10/05/2019
    06/06/2019
    20/08/2019
    30/09/2020

预期产量:

   Date
------------
 10/05/2019
 06/06/2019
 06/06/2019
 06/06/2019
耶斯列尔

将列转换为日期时间,比较并设置今天的日期:

df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y')
today = pd.Timestamp.today().floor('d')
df.loc[df['Date'] > today, 'Date'] = today
print (df)
        Date
0 2019-05-10
1 2019-06-06
2 2019-06-06
3 2019-06-06

最后,如有必要,使用相同格式Series.dt.strftime

df['Date'] = df['Date'].dt.strftime('%d/%m/%Y')
print (df)
         Date
0  10/05/2019
1  06/06/2019
2  06/06/2019
3  06/06/2019

替代方法,仅将过滤后的行设置为日期时间的最终格式:

d = pd.to_datetime(df['Date'], format='%d/%m/%Y')
today = pd.Timestamp.today().floor('d').strftime('%d/%m/%Y')
df.loc[d > today, 'Date'] = today
print (df)
         Date
0  10/05/2019
1  06/06/2019
2  06/06/2019
3  06/06/2019

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章