[問題] 抓格式不整齊的csv

作者: lh1122 (琳)   2018-03-29 16:00:25
大家好,
csv某欄的資料裡面包含逗號,
當用python抓的時候就會產生問題,
想請教有什麼方式可以抓某欄格式不整齊的csv資料。謝謝
作者: kenduest (小州)   2018-03-29 16:12:00
你的 cvs 內容內,有逗點的資料有用雙引號包起來嗎?
作者: lh1122 (琳)   2018-03-29 16:28:00
沒有用雙引號包,資料來自老師,但筆數過多也無法人工加雙引號
作者: ddavid (謊言接線生)   2018-03-29 16:31:00
如果後欄是數字的話就還有機會,你可以在這一欄特別處理讀到數字為止(前提是這欄裡面沒數字)或者這一欄如果「一定有剛好一個逗號」的話,你可以當成兩欄來讀,再合併並補上中間的逗號若沒以上這些比較好處理的情況,要程式自動處理就不容易了
作者: lh1122 (琳)   2018-03-29 16:43:00
該欄像人的一般敘述,所以有多個逗號,部分可能也有數字,此外下一欄還是文字
作者: Jeffrey11061 (Jeff)   2018-03-29 16:43:00
欄位內容有沒有什麼規則呢?
作者: lh1122 (琳)   2018-03-29 16:47:00
感覺沒有,屬於人的描述,有逗號、數字、文字
作者: Kazimir (Kazimir)   2018-03-29 16:56:00
如果只有這一欄是這種情況 那你就把切開來會比正常多幾欄的那些挑出來 特別處理以後再放回去
作者: Jeffrey11061 (Jeff)   2018-03-29 17:03:00
目前想到可以寫個file I/O的script 將逗點數量不正確的lines濾出來另外處理
作者: lh1122 (琳)   2018-03-29 17:18:00
想問K大要怎麼切呢,要依據什麼切?也想問J大要依據什麼過濾呢?
作者: vfgce (小兵)   2018-03-29 17:19:00
不考慮放個資料圖給大家看一下你的資料長什麼樣?
作者: Jeffrey11061 (Jeff)   2018-03-29 17:27:00
line by line讀取,count逗號數量,正確的話將該行寫到file A,否則寫到file B
作者: lh1122 (琳)   2018-03-29 17:27:00
https://i.imgur.com/5JYKwlj.jpg這是模擬資料,概念是地址這欄有很多逗號,導致格式不整齊了,但真實資料中的下一欄是文字,非影像中的數字
作者: Jeffrey11061 (Jeff)   2018-03-29 17:30:00
用純文字方式開啟可能比較好讓大家觀察
作者: vfgce (小兵)   2018-03-29 17:36:00
你的逗號看來是全形,應該不影響啊.....
作者: lh1122 (琳)   2018-03-29 17:38:00
作者: flarehunter (Range)   2018-03-29 18:10:00
用regex找電話號碼的欄位,前面的都當成地址行不行
作者: iitze (ici la lune)   2018-03-29 18:16:00
反過來抓,後面三個欄位保留,前面合併
作者: vfgce (小兵)   2018-03-29 18:32:00
假設你的資料都是高雄,line 為讀入的一行a,b=line.split('07-')a就是地址部分,b自行把'07-'補上,再做一次split
作者: hsnusonic (sonic)   2018-03-29 21:06:00
如果資料是你貼的這樣,從後面切回來就好啦,rsplit(‘,’,5)
作者: lh1122 (琳)   2018-03-29 23:19:00
感謝各位前輩的慷慨幫助,等我拿到真實資料就來試試,再次感謝
作者: junkuo (唉)   2018-03-30 10:12:00
這圖裏面是不是有個資?要注意喔,會被告的
作者: Neisseria (Neisseria)   2018-03-30 11:08:00
作者: lh1122 (琳)   2018-03-30 11:32:00
謝謝J大提醒,這是開放式資料下載來的也謝謝N大我來研究看看

Links booklink

Contact Us: admin [ a t ] ucptt.com