1. 函数功能
读取逗号分隔数据的文件comma-separated values (csv)
2. 函数语法
pandas.read_csv(filepath_or_buffer, *, sep=_NoDefault.no_default, delimiter=None,
header='infer', names=_NoDefault.no_default, index_col=None, usecols=None,
squeeze=None, prefix=_NoDefault.no_default, mangle_dupe_cols=True, dtype=None,
engine=None, converters=None, true_values=None, false_values=None,
skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None,
keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True,
parse_dates=None, infer_datetime_format=False, keep_date_col=False, date_parser=None,
dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer',
thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=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=False, low_memory=True, memory_map=False,
float_precision=None, storage_options=None)
3.函数参数
3.1 常用参数
参数 含义 filepath_or_buffer 文件路径 sep 分隔符,默认为逗号"," delimiter 分隔符,默认为逗号"," header 整数,或者整数组成的列表;指定作为列名的行。默认值为0,即取第一行作为列名;若当前数据中无列名,则设置header=None,并可通过names 参数指定列名 ;改参数默认值为“infer”:当names参数无内容传入时,认为header=0;当names参数传入名称时,认为header=None encoding 读取文件的编码格式。将EXCEL 文件另存为CSV格式时,默认编码为GBK
3.2 names: 列名
参数 含义 filepath_or_buffer 文件路径 sep 分隔符,默认为逗号"," delimiter 分隔符,默认为逗号"," header 整数,或者整数组成的列表;指定作为列名的行。默认值为0,即取第一行作为列名;若当前数据中无列名,则设置header=None,并可通过names 参数指定列名 ;改参数默认值为“infer”:当names参数无内容传入时,认为header=0;当names参数传入名称时,认为header=None encoding 读取文件的编码格式 names 列名称列表,列表中的字符不允许重复;当原始数据中存在列名时,应指明header=0,否则会在原有列名的基础上新增列名names
3.2.1 原始数据有列名且未指明header=0
可以看到,通过names参数新增了一行列名数据,但是原有列名被当作数据处理,此时这种处理是不合理的
3.2.1 原始数据有列名且指明header=0
此时,header=0首行的列名标签被替换为names指定的标签内容
3.2.3 当原始数据无列名
此时,可直接使用names参数指定列名,此时的header=None
3.3 index_col: 指定作为索引的列
参数 含义 filepath_or_buffer 文件路径 sep 分隔符,默认为逗号"," delimiter 分隔符,默认为逗号"," header 整数,或者整数组成的列表;指定作为列名的行。默认值为0,即取第一行作为列名;若当前数据中无列名,则设置header=None,并可通过names 参数指定列名 ;改参数默认值为“infer”:当names参数无内容传入时,认为header=0;当names参数传入名称时,认为header=None encoding 读取文件的编码格式 names 列名称列表,列表中的字符不允许重复;当原始数据中存在列名时,应指明header=0,否则会在原有列名的基础上新增列名names index_col 指定索引列 ,默认不指定;可取值:整数、字符串
3.3.1 默认情况,不指定索引列
3.3.2 指定某列作为索引列
3.4 usecols: 选取指定列
参数 含义 filepath_or_buffer 文件路径 sep 分隔符,默认为逗号"," delimiter 分隔符,默认为逗号"," header 整数,或者整数组成的列表;指定作为列名的行。默认值为0,即取第一行作为列名;若当前数据中无列名,则设置header=None,并可通过names 参数指定列名 ;改参数默认值为“infer”:当names参数无内容传入时,认为header=0;当names参数传入名称时,认为header=None encoding 读取文件的编码格式 names 列名称列表,列表中的字符不允许重复;当原始数据中存在列名时,应指明header=0,否则会在原有列名的基础上新增列名names index_col 指定索引列 ,默认不指定;可取值:整数、字符串 usecols 指定选取的列,可以使用列名组成的列表,或列索引组成的列表
3.5 skiprows: 跳过哪些行
参数 含义 filepath_or_buffer 文件路径 sep 分隔符,默认为逗号"," delimiter 分隔符,默认为逗号"," header 整数,或者整数组成的列表;指定作为列名的行。默认值为0,即取第一行作为列名;若当前数据中无列名,则设置header=None,并可通过names 参数指定列名 ;改参数默认值为“infer”:当names参数无内容传入时,认为header=0;当names参数传入名称时,认为header=None encoding 读取文件的编码格式 names 列名称列表,列表中的字符不允许重复;当原始数据中存在列名时,应指明header=0,否则会在原有列名的基础上新增列名names index_col 指定索引列 ,默认不指定;可取值:整数、字符串 usecols 指定选取的列,可以使用列名组成的列表,或列索引组成的列表 skiprows 取值可以是要跳过的行索引组成的列表;也可以是整数表示要从头开始要跳过的行数
3.5.1 skiprows取值为整数
skiprows=n,跳过前n行
3.5.2 skipnrows取值为索引列表
3.6 nrows: 指定读取数据的行数
参数 含义 filepath_or_buffer 文件路径 sep 分隔符,默认为逗号"," delimiter 分隔符,默认为逗号"," header 整数,或者整数组成的列表;指定作为列名的行。默认值为0,即取第一行作为列名;若当前数据中无列名,则设置header=None,并可通过names 参数指定列名 ;改参数默认值为“infer”:当names参数无内容传入时,认为header=0;当names参数传入名称时,认为header=None encoding 读取文件的编码格式 names 列名称列表,列表中的字符不允许重复;当原始数据中存在列名时,应指明header=0,否则会在原有列名的基础上新增列名names index_col 指定索引列 ,默认不指定;可取值:整数、字符串 usecols 指定选取的列,可以使用列名组成的列表,或列索引组成的列表 skiprows 取值可以是要跳过的行索引组成的列表;也可以是整数表示要从头开始要跳过的行数 nrows 整数,指定读取数据的行数
3.7 处理缺失值
参数 含义 filepath_or_buffer 文件路径 sep 分隔符,默认为逗号"," delimiter 分隔符,默认为逗号"," header 整数,或者整数组成的列表;指定作为列名的行。默认值为0,即取第一行作为列名;若当前数据中无列名,则设置header=None,并可通过names 参数指定列名 ;改参数默认值为“infer”:当names参数无内容传入时,认为header=0;当names参数传入名称时,认为header=None encoding 读取文件的编码格式 names 列名称列表,列表中的字符不允许重复;当原始数据中存在列名时,应指明header=0,否则会在原有列名的基础上新增列名names index_col 指定索引列 ,默认不指定;可取值:整数、字符串 usecols 指定选取的列,可以使用列名组成的列表,或列索引组成的列表 skiprows 取值可以是要跳过的行索引组成的列表;也可以是整数表示要从头开始要跳过的行数 nrows 整数,指定读取数据的行数 na_values 指定识别为空值NA的内容,取值为字符串、数值、列表或字典 keep_default_na 布尔值,默认取值为TRUE,是否将默认为空值的字符串识别为NaN)
3.7.1 na_values: 指定作为缺失值的参数
当只有一个值需要指定为缺失值,可以使用字符串,有多个值指定为缺失值可以使用列表;当需要对某特定列的指定字符串指定为缺失值时,可以使用字典:
import pandas as pd
data = pd. read_csv( 'D:\\air_data.csv' , encoding= 'gbk' ,
na_values= { 'WORK_CITY' : [ '.' , 'PARIS' ] } )
print ( data)
3.7.2 keep_default_na
1) 当keep_default_na取值为TRUE,且na.values未指定值,只有空值会被识别为NaN
2) 当keep_default_na取值为TRUE,且na.values指定值为缺失值,指定为空值的值与空值本身都会被识别为NaN
3) 当keep_default_na取值为False,且na.values指定值为缺失值,则只要指定的字符串被识别为NaN
4) 当keep_default_na取值为False,且na.values无指定值,则没有值会被识别为NaN