pandas中的read_csv参数详解
1.官⽹语法
0**,** doublequote=True**,** escapechar=None**,** comment=None**,** encoding=None**,** encoding_errors='strict’, dialect=None**,** error_bad_lines=None**,** warn_bad_lines=None**,** on_bad_lines=None**,**
delim_whitespace=Fal**,** low_memory=True**,** memory_map=Fal**,** float_precision=None**,**
storage_options=None**)**
read_csv()函数在pandas中⽤来读取⽂件(逗号分隔符),并返回DataFrame。
2.参数详解
2.1 filepath_or_buffer(⽂件)
笔记本怎么放光盘注:不能为空
filepath_or_buffer:str, path object or file-like object
青蛙公主设置需要访问的⽂件的有效路径。
可以是URL,可⽤URL类型包括:http, ftp, s3和⽂件。
对于多⽂件正在准备中本地⽂件读取实例: /localhost/path/to/table.csv
# 本地相对路径:
# 本地绝对路径:
2.2 p(分隔符)
p:str, default ‘,’
指定分隔符。如果不指定参数,则会尝试使⽤逗号分隔。分隔符长于⼀个字符并且不是‘\s+’,
将使⽤python的语法分析器。并且忽略数据中的逗号。正则表达式例⼦:’\r\t’
# 数据分隔转化是逗号, 如果是其他可以指定
2.3 delimiter(分隔符)
delimiter:str, default None
定界符,p的别名。
2.4 header(表头)
header:int,list of int, default ‘infer’
指定⾏数⽤来作为列名,数据开始⾏数。
如果⽂件中没有列名,则默认为0,否则设置为None。如果明确设定header=0 就会替换掉原来存在列名。
header参数可以是⼀个list例如:[0,1,3],这个list表⽰将⽂件中的这些⾏作为列标题(意味着
每⼀列有多个标题),介于中间的⾏将被忽略掉(例如本例中的2;本例中的数据1,2,4⾏将被作为多级标题出现,第3⾏数据将被丢弃,dataframe的数据从第5⾏开始)。
注意:如果skip_blank_lines=True 那么header参数忽略注释⾏和空⾏,所以header=0表⽰第⼀⾏数据⽽不是⽂件的第⼀⾏。
# 默认系统会推断,如果指定列名会被忽略
考勤通报
海南图片2.5 names(列名)
names: array-like, optional
⽤于结果的列名列表,如果数据⽂件中没有列标题⾏,就需要执⾏header=None。默认列表中不
能出现重复,除⾮设定参数mangle_dupe_cols=True。
2.6 index_col(索引列)
index_col:int,str, quence of int/str,or Fal, default None
⽤作⾏索引的列编号或者列名,如果给定⼀个序列则有多个⾏索引。
如果⽂件不规则,⾏尾有分隔符,则可以设定index_col=Fal 来是的pandas不适⽤第⼀列作为⾏索引。
# 默认为 `None`, 不⾃动识别索引
2.7 ucols(使⽤部分列)
ucols:list-like or callable, optional
返回⼀个数据⼦集,该列表中的值必须可以对应到⽂件中的位置(数字可以对应到指定的列)或者是字符传为⽂件中的列名。例如:ucols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’,
‘baz’]。使⽤这个参数可以加快加载速度并降低内存消耗。
# 读取部分列
# 指定列顺序,其实是 df 的筛选功能
# 以下⽤ callable ⽅式可以巧妙指定顺序, in 后边的是我们要的顺序
2.8 squeeze(返回序列)
squeeze:bool, default Fal
如果⽂件值包含⼀列,则返回⼀个Series,如果是多个列依旧还是DataFrame。
# 只取⼀列会返回⼀个 Series
# 如果是两列则还是 df
2.9 prefix(表头前缀)
prefix:str, optional
在没有列标题时,给列添加前缀。例如:添加‘X’ 成为 X0, X1, …
# 表头为 c_0、c_2
2.10 mangle_dupe_cols(处理重复列名)
mangle_dupe_cols:bool, default True
重复的列,将‘X’…’X’表⽰为‘X.0’…’X.N’。如果设定为Fal则会将所有重名列覆盖。
data ='a,b,a\n0,1,2\n3,4,5'
# 表头为 a b a.1
# Fal 会报 ValueError 错误
2.11 dtype(数据类型)
dtype: Type name or dict of column ->type, optional
每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}
2.12 engine(引擎)
engine:{‘c’, ‘python’}, optional
Parr engine to u. The C engine is faster while the python engine is currently more feature-complete.使⽤的分析引擎。可以选择C或者是python。C引擎快,但是Python引擎功能更加完备。
2.13 converters(列数据处理)
converters:dict, optional
列转换函数的字典。key可以是列名或者列的序号。
from io import StringIO
data ='x,y\na,1\nb,2'
def foo(p):
return p+'s'
# x 应⽤函数, y 使⽤ lambda
'y':lambda x: x*3})
# 输出:
x y
电影《天火》0as111
1 bs 222
# 使⽤列索引
converters={0: foo,1:lambda x: x*3})
2.14 true_values(真值转换)
true_values:list, optional
Values to consider as True 将指定的⽂本转换为 True, 可以⽤列表指定多个值。
from io import StringIO
data =('a,b,c\n1,Yes,2\n3,No,4')
true_values=['Yes'], fal_values=['No'])
# 输出
a b c
01True2
13Fal4
2.15 fal_values(假值转换)
fal_values:list, optional
Values to consider as Fal将指定的⽂本转换为 Fal, 可以⽤列表指定多个值。
2.16 skipinitialspace(忽略分隔符后的空⽩)
skipinitialspace:bool, default Fal
忽略分隔符后的空⽩(默认为Fal,即不忽略).
data ='a, b, c\n 1, 2, 3\n 4 ,5, 6'
# 输出
a b c
0123
1456
2.17 skiprows(跳过指定⾏)
skiprows:list-like,int or callable, optional
需要忽略的⾏数(从⽂件开始处算起),或需要跳过的⾏号列表(从0开始)。
# 跳过前2⾏
# 跳过前2⾏
# 跳过指定⾏
# 跳过指定⾏
# 隔⾏跳过
2.18 shipfooter(尾部跳过)
skipfooter:int, default 0
从⽂件尾部开始忽略。 (c引擎不⽀持)
2.19 nrows(读取⾏数)
nrows:int, optional
需要读取的⾏数(从⽂件头开始算起)。⼀般⽤于较⼤的数据⽂件
2.20 na_values(空值替换)
na_values: scalar,str,list-like,or dict, optional
⼀组⽤于替换NA/NaN的值。如果传参,需要制定特定列的空值。默认为‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’,‘NaN’, ‘nan’`.
# 5 和 5.0 会被认为 NaN
# ? 会被认为 NaN
# 空值为 NaN
# 字符 NA 字符 0 会被认为 NaN
# Nope 会被认为 NaN
烤肉腌料配方# a、b、c 均会被认为 NaN 等于 na_values=['a','b','c']
# 指定列的指定值会被认为 NaN
2.21 keep_fault_na(保留默认空值)
keep_default_na:bool, default True
析数据时是否包含默认的NaN值,是否⾃动识别。
如果指定na_values参数,并且keep_default_na=Fal,那么默认的NaN将被覆盖,否则添加。
# 不⾃动识别空值
keep_default_na na_values逻辑
True指定na_values 的配置附加处理