关于pandas读取excel文件出现精度丢失的问题

读取xlsx文件,其中一个单元格为“440602199305220000”,类型是number,
通过read_excel读取后,变成了“440602199305219968 ”

column_list = []
df_column = pd.read_excel(path, sheet_name='提货委托书').columns
for i in df_column:
    column_list.append(i)
converter = {col: str for col in column_list}
print(converter)
df_actual = pd.read_excel(path, sheet_name='提货委托书',converters=converter)


df = pd.read_excel(path,engine="calamine", dtype='object',sheet_name='提货委托书')

df = pd.read_excel(path, dtype=str,sheet_name='提货委托书',engine='openpyxl')
df

使用了以上三种方法都还是不是,当把sheet转换成csv的时,读取是正常的。

或者excel中把长数字前面添加一个引号

相同问题:
https://blog.csdn.net/weixin_45091039/article/details/125492404

使用其它库进行测试,发现读取出的值是科学计数法

import pyexcel as pe
path = "/Users/txmmy/my-python-projects/table-analysis/tests/Book1.csv"

# 读取 Excel 文件
data = pe.get_sheet(file_name=path)

from openpyxl import load_workbook

# 加载 Excel 文件
path = "提货委托书.xlsx"
wb = load_workbook(path)
sheet = wb.active

# 读取所有单元格的值,并将科学计数法的数值转换为字符串
for row in sheet.iter_rows(values_only=True):
    row_data = []
    for cell in row:
        row_data.append(cell)
    print(row_data)

也就是出现了一个问题: excel中的长数字,pandas读取会变成科学计数法

解决方法: 主要是从excel数据源格式去解决,因为对于身份证号、银行卡号这种,不应该是number类型,image

作者:Gim

出处:https://www.cnblogs.com/Gimm/p/18719192

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   踩坑大王  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示