写在前面
使用pandas中read_csv读取csv数据时,对于有表头的数据,将header设置为空(None),会报错:pandas_libs\parsers.pyx in pandas._libs.parsers.raise_parser_error() ParserError: Error tokenizing data. C error: Expected 4 fields in line 2, saw 5 。
查看pandas官方文档发现, read_csv 读取时会自动识别表头,数据有表头时不能设置header为空(默认读取第一行,即 header=0 );数据无表头时,若不设置header,第一行数据会被视为表头,应传入 names 参数设置表头名称或设置 header=None 。
参考文档
这是pandas的read_csv的官方文档: python - pandas.read_csv
read_csv的header参数
使用pandas的 read_csv 读取数据时, header 参数表头名称设置(即各列数据对应名称),下面是文档中对header参数的说明:
其中指出,表头可根据数据格式推断各列名称:默认情况下,
下面是对 read_csv 的header参数测试
header参数测试
测试数据 两个csv(用逗号隔开)格式的文件,这里是用Excel打开,分别是带有表头和不带表头的数据:
默认header 下面是header默认情况下,对有表头的数据识别第一行作为header(即header=0)[ 数据没有给出index名称,这里设置 index_col=False ,不设置默认第一列为index(而表头仍是4列,最后一列数据为NaN), index_col 参数与 header 类似可自动识别。
设置header=None 对有表头的数据设置 header=None 则会报错:
对无表头的数据,则需设置 header=None ,否则第一行数据被作为表头:
思考
pandas是如何识别或区分数据和表头名称的 ?
对于 index_col 来说,若数据都是相同类型,比如数值型,则表示无index,输出默认index为0,1,2,…;若数据第一列为字符,其他列为数值,则会将第一列视为index;若设置 index_col=False , 则表示无index(默认将0, 1, 2,…作为数据的index) 对 header ,当第一行为字符,则第一行默认为表头;当第一行与其他数据类型相同时,也会把第一行当作表头,所以无表头时应设置 header=Noneheader传入list参数(元素代表取对应行号)怎么用?
read_csv的参数 skip_blank_lines=True 会忽略注释行和空行,其中注释行是用什么符号注释的?(试了一下,行首用’#'注释的不对)
到此这篇关于pandas读取csv格式数据时header参数设置方法的文章就介绍到这了,更多相关pandas header参数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
查看更多关于pandas读取csv格式数据时header参数设置方法的详细内容...