整数转换为datetime类型及生成指定格式日期的问题咨询
解决方案
你可以直接用以下两种方案实现需求:
方案1:先转datetime类型(适合后续需要做日期计算的场景)
如果你的DataFrame包含year、month、day三列数值类型数据,直接调用pd.to_datetime拼接三列,再格式化输出为你需要的日期格式:
import pandas as pd # 先转换为pandas标准datetime类型 df['date'] = pd.to_datetime(df[['year', 'month', 'day']]) # 格式化输出为 月/日/年 格式,保留前导零如08/24/2019 df['formatted_date'] = df['date'].dt.strftime('%m/%d/%Y') # 不需要前导零如8/24/2019,Linux/macOS用以下代码 df['formatted_date'] = df['date'].dt.strftime('%_m/%_d/%Y').str.replace(' ', '') # Windows环境下用以下代码 df['formatted_date'] = df['date'].dt.strftime('%#m/%#d/%Y')
方案2:直接字符串拼接(适合仅需要显示、无后续日期计算的场景)
不需要转换datetime类型,直接将三列转为字符串拼接即可得到目标格式:
df['formatted_date'] = df['month'].astype(str) + '/' + df['day'].astype(str) + '/' + df['year'].astype(str)
常见错误排查
你之前转换结果不符合预期,大概率是以下原因:
- 拼接年月日时顺序错误,把年放在了最前或者最后
- 格式化时
strftime的参数写错,%m对应月份、%d对应日期、%Y对应四位年份,顺序和分隔符要和你需要的格式匹配 - 如果你的年份是两位数据(如19而非2019),需要将
%Y替换为%y,或者手动补20前缀
内容的提问来源于stack exchange,提问作者Linear17
相关产品推荐
相关产品推荐

