You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除Pandas日期解析警告并保留yyyymmdd格式输出?

解决CSV日期解析弃用警告并转换为yyyymmdd格式的方案

问题说明

date_parser参数已被pandas弃用,而date_format仅用于指定输入日期的解析格式,不会自动修改输出格式。要同时消除警告并得到yyyymmdd格式的日期,需要在解析后额外处理日期格式转换。


方案1:先解析为datetime对象,再转换格式

先通过date_format指定输入格式完成解析(消除弃用警告),再将datetime类型的日期列转为目标字符串格式:

import pandas as pd

# 读取CSV,用date_format指定输入日期格式(mm/dd/yyyy),同时解析为datetime类型
df = pd.read_csv('your_file.csv', date_format='%m/%d/%Y', parse_dates=['date_column'])

# 将datetime列转换为yyyymmdd格式的字符串
df['date_column'] = df['date_column'].dt.strftime('%Y%m%d')

# 导出为JSON
df.to_json('output.json', orient='records')

方案2:读取时直接用converters转换格式

通过converters参数自定义日期转换函数,读取时直接将日期字符串转为yyyymmdd格式,无需后续处理:

import pandas as pd
from datetime import datetime

def convert_to_yyyymmdd(date_str):
    # 解析mm/dd/yyyy格式字符串,返回yyyymmdd格式字符串
    return datetime.strptime(date_str, '%m/%d/%Y').strftime('%Y%m%d')

# 读取CSV时对指定日期列应用转换函数
df = pd.read_csv('your_file.csv', converters={'date_column': convert_to_yyyymmdd})

# 导出为JSON
df.to_json('output.json', orient='records')

方案3:批量处理多日期列

如果CSV中有多个日期列,可统一识别datetime类型列并转换格式:

import pandas as pd

# 读取所有日期列,指定输入格式
date_cols = ['date_col1', 'date_col2', 'date_col3']
df = pd.read_csv('your_file.csv', date_format='%m/%d/%Y', parse_dates=date_cols)

# 遍历所有datetime类型列,转换为yyyymmdd格式
for col in df.select_dtypes(include=['datetime64']).columns:
    df[col] = df[col].dt.strftime('%Y%m%d')

# 导出为JSON
df.to_json('output.json', orient='records')

内容的提问来源于stack exchange,提问作者ncwxpanther

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:45:57