首页 > 解决方案 > 如果缺少日期,熊猫将日期时间设置为每月的第一天?

问题描述

当我使用 Pandas 转换我的日期时间字符串时,如果缺少这一天,它会将其设置为该月的第一天。

例如:

   pd.to_datetime('2017-06')

   OUT[]: Timestamp('2017-06-01 00:00:00')

有没有办法让它使用每月的第 15 天(中间)?

编辑:

如果缺少这一天,我只希望它使用第 15 天,否则使用实际日期 - 所以将所有值偏移 15 是行不通的。

标签: pythonpandasdatetime

解决方案


虽然使用实际调用不可能做到这一点,但您始终可以使用正则表达式匹配来确定字符串是否包含日期并相应地继续。注意:此代码仅在使用“-”分隔日期时有效:

import re
date_str = '2017-06'
if (not bool(re.match('.+-.+-.+',date_str))):
    pd.to_datetime(date_str).replace(date=15)
else:
    pd.to_datetime(date_str)

推荐阅读