如何在Python Polars中处理日期格式列?解决Excel加载年份变两位问题
解决Polars加载Excel后出生日期年份变为两位的问题
首先要明确:read_csv_options是Polars中read_csv方法的参数,read_excel根本不识别这个参数,你之前写的read_csv_options={'parse_dates':False}完全无效,这是核心问题之一。
针对你的需求,分两种场景处理:
场景1:Excel中出生日期是原生日期格式(单元格为日期类型)
Polars默认会把Excel原生日期解析为datetime类型,你看到的两位年份只是显示格式问题,数据本身是包含完整四位年份的。如果需要输出或显示为MM/DD/YYYY格式的字符串,可以用dt.strftime方法格式化:
import polars as pl # 加载Excel,无需多余参数 df = pl.read_excel(r'C:\datos\test.xlsx') # 将日期列格式化为MM/DD/YYYY字符串(替换原列或新增列) df = df.with_columns( pl.col("出生日期").dt.strftime("%m/%d/%Y").alias("出生日期") )
如果只是查看时显示四位年份,调整你的数据查看工具(比如Jupyter Notebook、Excel)的日期显示格式即可,无需修改代码。
场景2:Excel中出生日期是文本格式(单元格为文本类型,原始就是MM/DD/YYYY字符串)
如果不想让Polars自动解析日期,直接保留原始文本格式,给read_excel直接传parse_dates=False参数即可:
import polars as pl # 关闭自动解析日期,保留原始文本格式 df = pl.read_excel(r'C:\datos\test.xlsx', parse_dates=False)
内容的提问来源于stack exchange,提问作者myamulla_ciencia
相关产品推荐
相关产品推荐

