Python Pandas read_csv()导入csv或者txt

读文本文件的主要方法: read_csv()

read_csv() 可接受以下常用参数:

> filepath_or_buffer : various    文件路径  
> sep : str, 默认 read_csv()分隔符为',',read_table()方法,分隔符为 \t 

delimiter : str, default None sep的替代参数.
delim_whitespace : boolean, default False 指定是否将空格 (e.g. ’ ’ or ‘\t’)当作delimiter。 等价于设置 sep=’\s+’. 如果这个选项被设置为 True,就不要给 delimiter 传参了.

准备一份实验数据
Python Pandas read_csv()导入csv或者txt_第1张图片

使用read_csv函数读取文件:
Python Pandas read_csv()导入csv或者txt_第2张图片
我们可以使用head(n)或者tail(n)函数读取数据的前或者后n条数据,默认读取5条

Python Pandas read_csv()导入csv或者txt_第3张图片

大家能够看到的是准备的数据十分整齐,每个数据之间都是一个空格,所以被正确的解析出来了。那么如果数据之间有多个空格呢?
比如下面的数据:
Python Pandas read_csv()导入csv或者txt_第4张图片
我们在运行一次:
Python Pandas read_csv()导入csv或者txt_第5张图片
大家可以看到多处的空格也别解析出来了。。。那么有什么办法解决吗?

在来看下sep 参数:
sep用来指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’

Python Pandas read_csv()导入csv或者txt_第6张图片
那么这里又有问题了,如果我们的数据本身有一个就是空值呢?
比如:
在这里插入图片描述
执行结果:
在这里插入图片描述
大家可以看到数据错位了。。。可见使用‘\s+’是可能会导致数据错误,所以还得慎用。除非你能确保数据是规范的。

header 

选择默认值或header=0时,将首行设为列名。如果列名被传入明确值就令header=None。注意,当header=0时,即使列名被传参也会被覆盖。

准备数据文件
Python Pandas read_csv()导入csv或者txt_第7张图片

Python Pandas read_csv()导入csv或者txt_第8张图片

标题可以是指定列上的MultiIndex的行位置的整数列表,例如 [0,1,3]。在列名指定时,若某列未被指定,读取时将跳过该列 (例如 在下面的例子中第二列将被跳过).注意,如果 skip_blank_lines=True,此参数将忽略空行和注释行, 因此 header=0 表示第一行数据而非文件的第一行.

这种方式适用于拥有多行标题的时候。

Python Pandas read_csv()导入csv或者txt_第9张图片

names

列名列表的使用. 如果文件不包含列名,那么应该设置header=None。 列名列表中不允许有重复值.
Python Pandas read_csv()导入csv或者txt_第10张图片

usecols 

返回列名列表的子集. 如果该参数为列表形式, 那么其值必须为有效的索引值或者列名。

Python Pandas read_csv()导入csv或者txt_第11张图片
usecols最常见的使用是callable的方式, 可调用函数将根据列名计算, 返回可调用函数计算结果为True的名称

Python Pandas read_csv()导入csv或者txt_第12张图片

prefix 

当没有header时,可通过该参数为数字列名添加前缀, e.g. ‘X’ for X0, X1, …
Python Pandas read_csv()导入csv或者txt_第13张图片

mangle_dupe_cols 

列名有重复时,解析列名将变为 ‘X’, ‘X.1’…’X.N’而不是 ‘X’…’X’。

Python Pandas read_csv()导入csv或者txt_第14张图片

如果该参数为 False ,那么当列名中有重复时,前列将会被后列覆盖。
小伙伴们就先不要尝试设置为False,应该是Pandas版本的问题,这个如果设置为False,会得到如下错误:

在这里插入图片描述

dtype

指定某列或整体数据的数据类型
Python Pandas read_csv()导入csv或者txt_第15张图片

skiprows 

需要忽略的行数,可以直接指定行号,也可以通过callable的方式, 可调用函数将根据行计算, 返回可调用函数计算结果为True的名称
Python Pandas read_csv()导入csv或者txt_第16张图片
Python Pandas read_csv()导入csv或者txt_第17张图片

skipfooter 

跳过文件末尾的若干行,默认值为0.
Python Pandas read_csv()导入csv或者txt_第18张图片
注意这个参数不支持c引擎,如果要用的话,就使用上面的方式。如果有中文,那么请指定编码格式。

comment

如果comment这个参数指定的话,那么会忽略整行comment语句,当然了空行也会忽略。

Python Pandas read_csv()导入csv或者txt_第19张图片
Python Pandas read_csv()导入csv或者txt_第20张图片

注意这个参数只能是单个字符,不然会的到下面的错误。

在这里插入图片描述

至于是什么你随意。。。比如我们把开头为2的当作注释:
Python Pandas read_csv()导入csv或者txt_第21张图片

skip_blank_lines

是否跳过空行,如果值为False,那么将不会跳过空行。(数据还是拿上面的为例)
Python Pandas read_csv()导入csv或者txt_第22张图片

当然了,还有许多参数这里没有介绍,希望大家谅解。。。

你可能感兴趣的:(Python)