如何将Pandas DataFrame中含月份缩写的日期列转为YYYY-MM-DD格式?
Pandas日期列格式转换:从"Jan 5, 2023"转YYYY-MM-DD
不用手动拆分月份、日、年,Pandas内置的日期处理工具就能轻松完成这个转换,直接看实操代码:
第一步:准备数据
import pandas as pd data = {'ID': [1, 2, 3, 4], 'Date': ['Jan 5, 2023', 'Feb 20, 2023', 'Mar 30, 2023', 'Apr 12, 2023']} df = pd.DataFrame(data)
原地转换为字符串格式的YYYY-MM-DD
如果需要把Date列直接变成YYYY-MM-DD格式的字符串,执行:
df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%Y-%m-%d')
执行后,Date列结果为:['2023-01-05', '2023-02-20', '2023-03-30', '2023-04-12']
推荐:转为datetime类型(更适合Seaborn绘图)
如果是为了后续用Seaborn画时间序列图,更推荐直接把Date列转为datetime类型——Seaborn能自动识别时间顺序,处理坐标轴更省心:
df['Date'] = pd.to_datetime(df['Date'])
此时Date列的数据类型是datetime64[ns],绘图时Seaborn会自动按时间排序,不需要额外调整格式。
为什么不用手动拆分?
pd.to_datetime()能自动识别这种带英文月份缩写的日期格式,比手动截取字符串、映射月份缩写到数字的方式更高效,还能避免格式不统一带来的错误(比如月份拼写错误、日期位数不一致等)。
内容的提问来源于stack exchange,提问作者Eli
相关产品推荐
相关产品推荐

