※ 本文轉寄自 ptt.cc, 文章原始頁面
看板Python
標題

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

時間
最新2018-03-30 11:32:00
留言40則留言,11人參與討論
推噓12 ( 12028 )
大家好, csv某欄的資料裡面包含逗號, 當用python抓的時候就會產生問題, 想請教有什麼方式可以抓某欄格式不整齊的csv資料。謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.157.17 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1522310427.A.F6E.html

40 則留言

kenduest, 1F
你的 cvs 內容內,有逗點的資料有用雙引號包起來嗎?

lh1122, 2F
沒有用雙引號包,資料來自老師,但筆數過多也無法人工加

lh1122, 3F
雙引號

ddavid, 4F
如果後欄是數字的話就還有機會,你可以在這一欄特別處理讀

ddavid, 5F
到數字為止(前提是這欄裡面沒數字)

ddavid, 6F
或者這一欄如果「一定有剛好一個逗號」的話,你可以當成兩

ddavid, 7F
欄來讀,再合併並補上中間的逗號

ddavid, 8F
若沒以上這些比較好處理的情況,要程式自動處理就不容易了

lh1122, 9F
該欄像人的一般敘述,所以有多個逗號,部分可能也有數字,

lh1122, 10F
此外下一欄還是文字

Jeffrey11061, 11F
欄位內容有沒有什麼規則呢?

lh1122, 12F
感覺沒有,屬於人的描述,有逗號、數字、文字

Kazimir, 13F
如果只有這一欄是這種情況 那你就把切開來會比正常多

Kazimir, 14F
幾欄的那些挑出來 特別處理以後再放回去

Jeffrey11061, 15F
目前想到可以寫個file I/O的script 將逗點數量不正

Jeffrey11061, 16F
確的lines濾出來另外處理

lh1122, 17F
想問K大要怎麼切呢,要依據什麼切?

lh1122, 18F
也想問J大要依據什麼過濾呢?

vfgce, 19F
不考慮放個資料圖給大家看一下你的資料長什麼樣?

Jeffrey11061, 20F
line by line讀取,count逗號數量,正確的話將該行

Jeffrey11061, 21F
寫到file A,否則寫到file B

lh1122, 22F
[問題] 抓格式不整齊的csv

lh1122, 23F
這是模擬資料,概念是地址這欄有很多逗號,導致格式不整

lh1122, 24F
齊了,但真實資料中的下一欄是文字,非影像中的數字

Jeffrey11061, 25F
用純文字方式開啟可能比較好讓大家觀察

vfgce, 26F
你的逗號看來是全形,應該不影響啊.....

lh1122, 27F
[問題] 抓格式不整齊的csv

flarehunter, 28F
用regex找電話號碼的欄位,前面的都當成地址行不行

iitze, 29F
反過來抓,後面三個欄位保留,前面合併

vfgce, 30F
假設你的資料都是高雄,line 為讀入的一行

vfgce, 31F
a,b=line.split('07-')

vfgce, 32F
a就是地址部分,b自行把'07-'補上,再做一次split

hsnusonic, 33F
如果資料是你貼的這樣,從後面切回來就好啦,rsplit(‘

hsnusonic, 34F
,’,5)

lh1122, 35F
感謝各位前輩的慷慨幫助,等我拿到真實資料就來試試,再

lh1122, 36F
次感謝

junkuo, 37F
這圖裏面是不是有個資?要注意喔,會被告的

Neisseria, 38F

lh1122, 39F
謝謝J大提醒,這是開放式資料下載來的

lh1122, 40F
也謝謝N大我來研究看看