我已經以Excel/CSV格式從http://www.gapminder.org/data下載了數據集「第一次結婚時的年齡(女性)」。數據集的第一行包含標題,第一列包含國家名稱。使用numpy.genfromtxt()讀取CSV文件 - 分隔符作爲行名稱的一部分
要閱讀這些數據,我使用下面的代碼。
import numpy as np
source=open("D:\FirstMarriage.csv")
data = np.genfromtxt(source, dtype=None, delimiter=",", skip_header=1)
print data
執行這個代碼(在Spyder的IDE)後,我收到此錯誤:
ValueError: Some errors were detected !
Line #37 (got 118 columns instead of 117)
Line #38 (got 118 columns instead of 117)
Line #72 (got 118 columns instead of 117)
Line #87 (got 118 columns instead of 117)
Line #97 (got 118 columns instead of 117)
Line #98 (got 118 columns instead of 117)
Line #184 (got 118 columns instead of 117)
當我打開CSV文件,用記事本+ +和我期待的指示線我發現,這些行包含名字的名稱中有昏迷的國家。而且,這些名字被引號爲唯一可能表明這是全名的名稱。但是,它並沒有幫助我。請參考下面(我只顯示第一列)的例子:
China
Colombia
"Congo, Dem. Rep."
"Congo, Rep."
Costa Rica
有沒有簡單的方法來清理這些數據,並作爲一個單一的字符串中引號把名字?
我在Windows 10上使用Python 2.7(Anaconda)。
謝謝!
最簡單的方法是將真正的分隔符更改爲其他內容,比如';'。事先用編輯器或過濾器功能做到這一點。 'csv.reader'可以處理引用的內容,但'genfromtxt'沒有任何規定。 – hpaulj
@hpaulj我已經改變了Windows設置來將分隔符寫爲';'。現在它運行良好,應該爲我的未來留下問題,因爲這個符號通常很少使用。但是,如果我使用預先描述的設置(例如公司)在不同的機器上工作,那麼我需要找到更強大的解決方案。 – Roberto