人们经常用pandas处理表格型数据 时常需要读入excel表格数据 很多人一般都是直接这么用 pd.read_excel (“文件路径文件名”), 再多一点的设置可能是转义一下路径中的斜杠 一旦原始的excel表不是很规整 这样简单读入势必报错 . 其实这个函数有很多参数可以设置 为了应对各式excel表满足各种读入的需求 我们来详细了解下pd.excel ()中的主要参数。
首先 认识一下pd.read_excel 函数的官方文档是这么说的
将Excel文件读取到pandas Dataframe中 支持本地文件系统或URL的’xls’和’xlsx’文件扩展名 带有这两种扩展名的文件 函数都可以处理 .
pandas.read_excel(io, sheet_name 0, header 0, names None, index_col None, parse_cols None, usecols None, squeeze False, dtype None, engine None, converters None, true_values None, false_values None, skiprows None, nrows None, na_values None, keep_default_na True, verbose False, parse_dates False, date_parser None, thousands None, comment None, skip_footer 0, skipfooter 0, convert_float True, mangle_dupe_cols True, **kwds)
函数的使用:
直接使用pd.read_excel(r 文件路径 ) 默认读取第一个sheet的全部数据
(! r SyntaxError: (unicode error) unicodeescape codec can t decode bytes in position 2-3: truncated UXXXXXXXX escap)
实际上就是第一个参数 io 支持str, bytes, ExcelFile, xlrd.Book, path object, or file-like object
io 路径
sheet_name
默认是sheetname为0 返回多表使用sheetname [0,1] 若sheetname None是返回全表 。注意 int/string返回的是dataframe 而none和list返回的是dict of dataframe。
header
指定作为列名的行 默认0 即取第一行 数据为列名行以下的数据 若数据不含列名 则设定 header None
skiprows list like 省略指定行数的数据
skip_footer 省略从尾部数的行数据
index_col int, list of int, default None :
默认值 index_col None ——重新设置一列成为index值
names 指定列的名字 传入一个list数据
pd.read_excel(names [ a , b , c ])
Out[ ]:
a b c
1
3 1 5 学生
3 2 4 老师
parse_cols:
为True时 则尝试解析数据框中的行索引 为列表 则尝试解析对应的日期列 参数为嵌套列表 则将某些列合并为日期列 如果参数为字典 则解析对应的列 即字典中的值 并生成新的变量名 即字典中的键
converters 通过字典的形式 指定哪些列需要转换成什么形式
throusands: 指定原数据集中的千分位符
parse_dates 该参数在函数内不再生效
convert_float 默认将所有的数值型变量转换位浮点型变量
na_values scalar, str, list-like, or dict, default None 指定某些列的某些值为NaN
keep_default_na (bool, default True)
表示导入数据时是否导入空值。默认为True 即自动识别空值并导入
usecols (int, str, list-like, or callable default None)
默认为None 解析所有列。
如果为str 则表示Excel列字母和列范围的逗号分隔列表 例如“ A E”或“ A C E F” 。范围全闭。
如果为int 则表示解析到第几列。
如果为int列表 则表示解析那几列。
str:usecols A:C ,只读取从A列到C列的数据
converters dict, default None
对指定列的数据进行指定函数的处理 传入参数为列名与函数组成的字典。key 可以是列名或者列的序号 values是函数 可以def函数或者直接lambda都行。
dtype Type name or dict of column - type, default None
列的类型名称或字典 默认为None 也就是不改变数据类型。
其作用是指定列的数据类型。
true_values list default None 将指定的文本转换为True 默认为None
false_values list default None 将指定的文本转换为False 默认为None
engine str, default None
可以接受的参数有“ xlrd” “ openpyxl”或“ odf” 用于使用第三方的库去解析excel文件。
squeeze (bool, default False)
默认为False。如果设置squeeze True则表示如果解析的数据只包含一列 则返回一个Series。
nrows int, default None
默认为None, 指定需要读取前多少行 通常用于较大的数据文件中。



