由於通過添加注釋,文件通常可以更加清晰明了。csv文件中有注釋,這種情況是可能存在的。那麼,在pandas讀取csv文件的時候,如何規避掉注釋。
例如,有如上文件,#後就是我添加的注釋。
# 如果僅指定分隔符,正常讀取是不合理的,結果僅有一列而非a,b,c三列,注釋當做了列名
>>> df = pd.read_csv('D:/1.csv', sep=' ')
>>> df
#empty\na,b,c\n1,2,3
a b c
12 中國 上海
>>> df.columns
Index(['#empty\na,b,c\n1,2,3'], dtype='object')
我們可以通過設置comment參數,指定某一行是注釋,則該行就不會被解析
>>> df = pd.read_csv('D:/1.csv', sep=' ', comment='#')
>>> df
a b c
0 12 中國 上海
以下是官方文檔給出的對該參數的說明
下面,我針對上述說明,分別列出幾種不同的情況:
(1) #沒有放在行首(empty#\na,b,c\n1,2,3)
>>> df = pd.read_csv('D:/1.csv', sep=' ', comment='#')
>>> df
empty
a b c
12 中國 上海
(2) 同一行出現多個#(#empty#\na,b,c\n1,2,3)
# 如果開頭有一個就不影響
>>> df = pd.read_csv('D:/1.csv', sep=' ', comment='#')
>>> df
a b c
0 12 中國 上海
(3)首行注釋同時指定了header=0
# 如果同時指定了header=0,則會忽略掉注釋行,把下一行作為header
>>> df = pd.read_csv('D:/1.csv', sep=' ', comment='#', header=0)
>>> df
a b c
0 12 中國 上海
哈哈,以上就是python小工具關於如何解決解析csv文件時,遇到的注釋問題。哈哈,有興趣歡迎關注python小工具,一起學習python和pandas。