Python如何将DataFrame的ISO日期列替换为简单日期
Pandas ISO格式日期列快速替换为年月日格式实现
完全有可以直接完成整列替换的单条命令,不需要逐行切割字符串,依托pandas原生时间处理能力就能实现,具体操作如下:
可直接执行的单条命令
根据你对最终列的存储需求,选择对应命令执行即可:
- 如果需要最终列存储为
YYYY-MM-DD格式的纯字符串,和你给出的示例输出完全匹配,执行命令:df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d') - 如果希望保留pandas原生日期类型(方便后续做日期筛选、排序、时间差计算,不需要额外类型转换),执行命令:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
上述方法对所有符合ISO 8601标准的日期值都兼容,包括你提到的带6位微秒的格式
2017-01-01T12:30:59.000000。因为pd.to_datetime本身内置了ISO格式的自动解析逻辑,不需要手动指定格式规则,比手动按T字符切割字符串的方式兼容性更强,不会因为个别日期格式不规则出现解析错误。
执行后效果
命令执行完成后,整列会自动去除原有的时分、微秒内容,仅展示YYYY-MM-DD形式的日期,和你预期的输出完全一致。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

