由于通过添加注释,文件通常可以更加清晰明了。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。