pd.read_excel ()


人们经常用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, 指定需要读取前多少行,通常用于较大的数据文件中。
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐