读取csv格式的数据--Pandas

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值