如何在pandas dataframe中将YYYYMXX格式字符串转换为标准日期
实现方案
直接使用pandas内置的日期解析工具即可完成转换,无需额外拆分字符串,两种实现方式可选:
方法1(最简写法,适配绝大多数场景)
pandas解析仅包含年月的日期时,默认会自动取当月第一天,直接指定输入格式即可:
import pandas as pd # 转换Date列格式 df['Date'] = pd.to_datetime(df['Date'], format='%YM%m').dt.strftime('%Y-%m-%d')
- 如果你需要
Date列为datetime类型而非字符串格式,删除末尾的.dt.strftime('%Y-%m-%d')即可
方法2(显式指定取当月第一天,稳定性更高)
如果担心不同pandas版本的默认行为差异,可以显式强制取当月第一天:
df['Date'] = pd.to_datetime(df['Date'], format='%YM%m').dt.to_period('M').dt.to_timestamp().dt.strftime('%Y-%m-%d')
参数说明
format='%YM%m':匹配输入的年M月格式,%Y对应4位年份,%m对应2位月份strftime('%Y-%m-%d'):将datetime对象格式化为年-月-日的字符串格式
内容的提问来源于stack exchange,提问作者RoshanShah22
相关产品推荐
相关产品推荐

