Python使用Pandas如何将DataFrame日期列从yyyy-mm-dd转为mm/dd/yyyy格式
Pandas转换日期列为无前置零mm/dd/yyyy格式解决方案
原代码错误原因
- 你使用了中文全角引号
“”,Python语法仅支持半角引号''/"",直接触发语法错误 df.df属于无效调用,访问DataFrame的指定列需要写为df['Date']- Pandas的字符串Series没有直接的
strptime方法,需要先将字符串转换为datetime类型后才能调用格式化方法 - 格式符
%m、%d默认带前导零,无法满足你要的个位数无前置零的需求
正确实现方案
首先明确:Pandas内部的datetime64类型是时间存储对象,本身无固定显示格式,仅在转为字符串输出时可以自定义格式。如果需要后续做日期计算、筛选,建议保留datetime类型,仅在需要输出的时候转成指定格式的字符串。
步骤1:导入CSV时直接解析日期列
导入阶段就把字符串格式的日期转为datetime类型,省去后续转换步骤:
import pandas as pd # parse_dates参数指定要解析为日期的列名 df = pd.read_csv('你的文件路径.csv', parse_dates=['Date'])
步骤2:转为无前置零的mm/dd/yyyy格式字符串
这里使用正则替换实现跨平台兼容,避免Windows和类Unix系统strftime去零符号不一致的问题:
# 先格式化带零的样式,再替换掉每个分段开头的前导零 df['Date'] = df['Date'].dt.strftime('%m/%d/%Y').str.replace(r'(?<!\d)0', '', regex=True)
转换后效果完全符合你的要求:
- 2021-01-04 → 1/4/2021
- 2021-01-12 → 1/12/2021
- 2021-10-08 → 10/8/2021
- 2020-11-16 → 11/16/2020
内容的提问来源于stack exchange,提问作者Clay
相关产品推荐
相关产品推荐

