[問題] pandas.to_csv 字串型態的數字

看板Python作者 (我不是砲哥)時間5年前 (2019/12/25 10:12), 5年前編輯推噓1(102)
留言3則, 2人參與, 5年前最新討論串1/2 (看更多)
(已解)↓↓↓ 使用純文字編輯器開啟CSV檔案發現前置0都還在 所以誠如H大回文所說 是excel等編輯器的顯示方式造成的視覺上錯覺 實際上卡號資料依然使用字串儲存 後續使用C++去跑也沒問題 (已解)↑↑↑ Hi all, 小弟剛接觸Py沒多久 經歷只有用google大神邊查邊學基本語法 然後只拚出一套暴力型爬蟲 所以可能有些東西不知道怎麼查或找錯方向再請各位指教 這次要處理一筆資料是excel檔要轉成csv給後續一支正常運作中的C++讀取 其中excel的內容為 (以下為虛構) 部門 | 卡號 | 名字 | 時間 | ABC | 00010 | John | 2019/12/25 08:00:01 | ABC | 00011 | Tom | 2019/12/25 08:02:55 | ..以此類推 用最直接的寫法 df = pd.read_excel('test.xlsx', usecols="A:D", dtype={'卡號':str}) 可以成功讀進我想要的資料及型態 1.卡號為str (為了保留完整五位數) 2.日期為datatime 然後 df.to_csv('hello.csv', index=None, header=True, encoding='utf-8-sig', quoting=csv.QUOTE_NONNUMERIC) 這句跑完之後產出的csv其中卡號跟日期欄位卻不是我想要的5位數及顯示秒數 而是 部門 | 卡號 | 名字 | 時間 | ABC | 10 | John | 2019/12/25 08:00 | ABC | 11 | Tom | 2019/12/25 08:02 | 我有想過是不是csv的儲存格格式造成 日期的部分證實的確是 但卡號的部分被預設為"通用格式"導致我的卡號被去掉了前置0 不曉得有沒有辦法可以在python的code裡面去設定這個呢 我找了pandas的官網說明to_csv但無斬獲 不知道是不是我誤會或漏看了.. 感謝XD P.S. 因為C++裡面讀取卡號後並沒有預設要做補0的動作 所以希望能在py這部分就處理掉 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.13.133 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1577239921.A.46F.html

12/25 16:44, 5年前 , 1F
把每個卡號前面加個單引號了 '00010
12/25 16:44, 1F
c大的想法是用'讓這串數字被py認為完全是一串字嗎XD 這我倒還真的沒想過

12/25 18:08, 5年前 , 2F
樓上那是針對試算表內格式的處理方式,但他這裡要丟給 C++
12/25 18:08, 2F

12/25 18:09, 5年前 , 3F
處理的,這樣反而是多此一舉...
12/25 18:09, 3F
H大說的也有道理 已經拜讀了您下一篇的討論 感謝 ※ 編輯: nepholi (211.72.13.133 臺灣), 12/26/2019 10:50:54 ※ 編輯: nepholi (211.72.13.133 臺灣), 12/26/2019 10:56:27
文章代碼(AID): #1U0iLnHl (Python)
文章代碼(AID): #1U0iLnHl (Python)