为了账号安全,请及时绑定邮箱和手机立即绑定

请问用Pandas把数据生成到excel的时候如何避免科学记数法?

请问用Pandas把数据生成到excel的时候如何避免科学记数法?

繁星点点滴滴 2018-08-02 19:24:20
我从两个不同的excel里读了差异数据,然后把他们放到一个新的excel里,在IDE下显示身份证号一列都正常,但是到了excel里就变成了科学计数法,有办法让身份证号一列直接到excel显示就是纯文本格式的吗?问题出现的环境背景及自己尝试过哪些方法在网上找了一阵资料,用了.astype(int64)没好用。相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)import pandas as pdimport numpy as npnp.set_printoptions(suppress=True)df1 = pd.read_excel('A.xlsx') # A表基础数据--基准表df2 = pd.read_excel('B.xlsx') # B表基础数据a = df2[(df2['身份证号'] != df1['身份证号']) & (df1['姓名'] == df2['姓名'])]b = df2[(df2['身份证号'] == df1['身份证号'].astype('str')) & (df1['姓名'] != df2['姓名'])]X = [a, b]Z = pd.concat(X)print(Z)writer = pd.ExcelWriter('差异.xlsx')a.to_excel(writer, 'sheet1') b.to_excel(writer, 'sheet2') writer.save()你期待的结果是什么?实际看到的错误信息又是什么?期待的结果是excel里生成正常的身份证号,实际看到不光没生成正常的身份证号,数字也不对。。。最后四位变成了0000
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

这个因为excel会处理超过一定位数的大数字。解决方法可以试试在写入前,将身份证那一列的数据类型强制转换为字符串或者说object,即:
a['身份证号'] = a['身份证号'].astype('str')
试一试。

查看完整回答
1 反对 回复 2018-08-04
  • 1 回答
  • 0 关注
  • 1385 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信