如何让Pandas读取Excel时保留日期原字符串,禁止自动解析?
解决Pandas读取Excel保留日期原字符串格式的问题
问题本质是Excel中的日期单元格实际存储的是数值,只是通过单元格格式设置显示为28/2/2024这类字符串,Pandas默认读取的是底层数值而非显示值,所以常规参数无法保留原格式。以下是可行解决方法:
方法1:修改Excel源文件单元格格式
- 选中日期列,右键选择「设置单元格格式」
- 在弹出窗口中选择「文本」格式,保存文件后再用Pandas读取:
import pandas as pd df = pd.read_excel('your_file.xlsx', dtype=str)
方法2:使用openpyxl读取单元格显示值(无需修改源文件)
借助openpyxl获取单元格的显示值(即Excel界面看到的字符串),再转为DataFrame:
- 先安装依赖:
pip install openpyxl - 执行代码:
这里import pandas as pd from openpyxl import load_workbook # 加载Excel文件 wb = load_workbook('your_file.xlsx', data_only=False) ws = wb.active # 提取表头和数据行的显示值 headers = [cell.value for cell in ws[1]] data_rows = [] for row in ws.iter_rows(min_row=2): data_rows.append([cell.display_value for cell in row]) # 转换为DataFrame df = pd.DataFrame(data_rows, columns=headers)data_only=False确保读取的是单元格格式计算后的显示值,而非底层存储的数值。
内容的提问来源于stack exchange,提问作者kalyan chakravarthy
相关产品推荐
相关产品推荐

