2016-02-29 126 views
2

我試圖編輯一個包含4百萬行數據的19列CSV文件。有兩列(第三和第四)列出了個人的姓名,他們的名字列出的方式是「姓氏,名字」。使用Python 3.5從CSV文件中的僅兩列刪除特定字符

C00431445,"P80003338","Obama, Barack","DUCLOS, DUNCAN","CHICAGO","IL","606601303","OBAMA FOR AMERICA","ACCOUNTING MANAGER",77.65,08-AUG-08,"","","","SA17A","753821","5433431","P2008", 

這是問題,因爲當我嘗試使用逗號分隔符文件上傳到MySQL,它在半分割這2列的名字。我想使用Python 3.5來選擇這兩列,並且只從其中刪除逗號,而不刪除其他行中的逗號。

當談到編碼和任何幫助時,我都是新手。我知道可以使用.split()拆分這些列,然後將它們合併爲無逗號,但是我想要一個更清晰的方法,它將直接從該文件中刪除逗號。

+1

這看起來有效CSV ,你用什麼工具將數據加載到MySQL中? – hruske

+0

不完全確定「什麼工具」的含義,我使用SQL查詢來創建,修改我的表以添加一個自動遞增主鍵,然後查詢它只是爲了發現我的數據沿着名稱分裂,因爲名字和姓氏用逗號分隔。我會附上我的查詢,但評論部分沒有足夠的空間,顯然。 – dataelephant

回答

0

使用CSV模塊的讀寫

import csv 

f = open('file.csv', 'rb') 
reader = csv.reader(f) 
your_list = list(reader) 


f = open('file.csv', 'wb') 
writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL) 

for line in your_list: 
    line[2] = line[2].replace(",","") 
    line[3] = line[3].replace(",","") 
    writer.writerow(line) 
+0

謝謝,經過更多的研究,我意識到CSV模塊可能是我找出這個問題的最好方法。 – dataelephant

0

在MySQL中,讀入列@variables,然後操縱他們爲您將它們保存到實際的列:

LOAD DATA ... 
    (id1, id2, @name1, @name2, ...), 
    SET name1 = REPLACE(@name1, ',', ''), 
     name2 = REPLACE(@name2, ',', ''); 
相關問題