我從兩個不同的excel里讀了差異數據,然后把他們放到一個新的excel里,在IDE下顯示身份證號一列都正常,但是到了excel里就變成了科學計數法,有辦法讓身份證號一列直接到excel顯示就是純文本格式的嗎?問題出現的環(huán)境背景及自己嘗試過哪些方法在網上找了一陣資料,用了.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')
試一試。
添加回答
舉報
0/150
提交
取消