文章目录
pandas.read_csv参数理解
filepath_or_buffer
filepath_or_buffer是pandas.read_csv的默认第一个参数,用于指定读取的文件的路径,一般直接给值
pd.read_csv('data/ex1.csv')
# 等价于pd.read_csv(filepath_or_buffer='data/ex1.csv')
header
指定作为标题的行,默认为0,如果不需要可以指定为None
header 的值可以是一个行数(数字),也可以是一个列表,如[0,1,3],将有多个标题行
但是要注意的是,当header指定某一行时,如果这一行不是第一行,那么该行前面的数据会被忽略。如果指定的是一个如[1,3]的列表时,那么不仅前面的行会被忽略,之间的行也会被忽略
举两个例子:
数据:
1、读取第2行作为标题行,第一行将会被忽略掉
result = pd.read_csv('data/ex3.txt', header=1,delim_whitespace=True)
result
获得结果:
2、读取多行作为标题行,不仅仅上面的行被忽略的,之间的行也被忽略了
result = pd.read_csv('data/ex3.txt', header=[1,3],delim_whitespace=True)
result
获得结果:
sep
指定的分隔符,默认为 ‘,’ 逗号
如果文件是用tab和多个空格分隔的,那么可以设置参数为sep=’\s+’
sep=’\s+'作用是: s+可以将tab和多个空格都当成一样的分隔符!!!!!!
举个例子:现在有一个文本文件它的分隔符是tab或者是空格
这个时候使用默认的sep读取出来的结果会有错误,所以需要另外设置sep的值,这里只要设置sep=’\s+'就能正常的读取该文件
result = pd.read_csv('data/ex3.txt', sep='\s+')
result
获得结果:
delimiter
备选分隔符,功能与sep相同,如果指定该参数那么sep将失效,使用上面sep的例子,在原本的基础上再指定delimiter参数,获得的结果无法正常读取我们想要的内容,说明sep失去了效果
result = pd.read_csv('data/ex3.txt', sep='\s+', delimiter=',')
result
获得结果: