Open main menu
PTT Hito
看板
新聞
熱門
C_Chat
NBA
棒球
看板
新聞
熱門
C_Chat
NBA
棒球
※ 本文轉寄自 ptt.cc,
文章原始頁面
看板
Python
作者
lh1122 (琳)
標題
[問題] 抓格式不整齊的csv
時間
2018-03-29 16:00:25
最新
2018-03-30 11:32:00
留言
40則留言,11人參與討論
推噓
12
(
12
推
0
噓
28
→
)
大家好, csv某欄的資料裡面包含逗號, 當用python抓的時候就會產生問題, 想請教有什麼方式可以抓某欄格式不整齊的csv資料。謝謝 --
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.157.17
※ 文章網址:
https://www.ptt.cc/bbs/Python/M.1522310427.A.F6E.html
40 則留言
只顯示圖片或影片,共2張
推
kenduest
03/29 16:12
, 1F
你的 cvs 內容內,有逗點的資料有用雙引號包起來嗎?
→
lh1122
03/29 16:28
, 2F
沒有用雙引號包,資料來自老師,但筆數過多也無法人工加
→
lh1122
03/29 16:28
, 3F
雙引號
推
ddavid
03/29 16:31
, 4F
如果後欄是數字的話就還有機會,你可以在這一欄特別處理讀
→
ddavid
03/29 16:31
, 5F
到數字為止(前提是這欄裡面沒數字)
→
ddavid
03/29 16:32
, 6F
或者這一欄如果「一定有剛好一個逗號」的話,你可以當成兩
→
ddavid
03/29 16:32
, 7F
欄來讀,再合併並補上中間的逗號
→
ddavid
03/29 16:33
, 8F
若沒以上這些比較好處理的情況,要程式自動處理就不容易了
→
lh1122
03/29 16:43
, 9F
該欄像人的一般敘述,所以有多個逗號,部分可能也有數字,
→
lh1122
03/29 16:43
, 10F
此外下一欄還是文字
→
Jeffrey11061
03/29 16:43
, 11F
欄位內容有沒有什麼規則呢?
→
lh1122
03/29 16:47
, 12F
感覺沒有,屬於人的描述,有逗號、數字、文字
推
Kazimir
03/29 16:56
, 13F
如果只有這一欄是這種情況 那你就把切開來會比正常多
→
Kazimir
03/29 16:57
, 14F
幾欄的那些挑出來 特別處理以後再放回去
推
Jeffrey11061
03/29 17:03
, 15F
目前想到可以寫個file I/O的script 將逗點數量不正
→
Jeffrey11061
03/29 17:03
, 16F
確的lines濾出來另外處理
→
lh1122
03/29 17:18
, 17F
想問K大要怎麼切呢,要依據什麼切?
→
lh1122
03/29 17:19
, 18F
也想問J大要依據什麼過濾呢?
推
vfgce
03/29 17:19
, 19F
不考慮放個資料圖給大家看一下你的資料長什麼樣?
推
Jeffrey11061
03/29 17:27
, 20F
line by line讀取,count逗號數量,正確的話將該行
→
Jeffrey11061
03/29 17:27
, 21F
寫到file A,否則寫到file B
→
lh1122
03/29 17:27
, 22F
https://i.imgur.com/5JYKwlj.jpg
→
lh1122
03/29 17:29
, 23F
這是模擬資料,概念是地址這欄有很多逗號,導致格式不整
→
lh1122
03/29 17:29
, 24F
齊了,但真實資料中的下一欄是文字,非影像中的數字
→
Jeffrey11061
03/29 17:30
, 25F
用純文字方式開啟可能比較好讓大家觀察
推
vfgce
03/29 17:36
, 26F
你的逗號看來是全形,應該不影響啊.....
→
lh1122
03/29 17:38
, 27F
https://i.imgur.com/hSivFI8.jpg
推
flarehunter
03/29 18:10
, 28F
用regex找電話號碼的欄位,前面的都當成地址行不行
→
iitze
03/29 18:16
, 29F
反過來抓,後面三個欄位保留,前面合併
推
vfgce
03/29 18:32
, 30F
假設你的資料都是高雄,line 為讀入的一行
→
vfgce
03/29 18:32
, 31F
a,b=line.split('07-')
→
vfgce
03/29 18:33
, 32F
a就是地址部分,b自行把'07-'補上,再做一次split
推
hsnusonic
03/29 21:06
, 33F
如果資料是你貼的這樣,從後面切回來就好啦,rsplit(‘
→
hsnusonic
03/29 21:06
, 34F
,’,5)
→
lh1122
03/29 23:19
, 35F
感謝各位前輩的慷慨幫助,等我拿到真實資料就來試試,再
→
lh1122
03/29 23:19
, 36F
次感謝
推
junkuo
03/30 10:12
, 37F
這圖裏面是不是有個資?要注意喔,會被告的
推
Neisseria
03/30 11:08
, 38F
https://github.com/Clever/csvlint
可參考
→
lh1122
03/30 11:32
, 39F
謝謝J大提醒,這是開放式資料下載來的
→
lh1122
03/30 11:32
, 40F
也謝謝N大我來研究看看
全部留言
使用者頁面
↑
PTT Hito 分享
Close modal
P
Copy
已複製,感謝您的分享
熱門看板近期熱門文章
遊戲區
娛樂區
投資理財區
動漫區
運動區
八卦政黑
旅遊美食
推
→
→
推
→
→
→
→
→
→
→
→
推
→
推
→
→
→
推
推
→
→
→
→
→
推
→
推
→
推
→
→
推
→
→
→
推
推
→
→