正文开始
- read_excel方法的常用参数详解
read_excel(
io, sheet_name=0, header=0, names=None, index_col=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
)
io:值为str类型,文件路径,必须传
sheet_name:值为str或int类型
int类型时,默认值0,表示Sheet1表,依次分别向后表示,不存在该sheet表时抛出IndexError错误: list index out of range
str类型时,必须输入sheet表的全名,不存在该sheet表时抛出xlrd.biffh.XLRDError错误: No sheet named <'x'>
header: 值为int类型或list类型
默认值0,表示从第一行开始读,输入值大于列的长度时会抛出ValueError错误: Passed header=7 but only 6 lines in file
list内的值也必须在列的长度范围内,如[2, 7],超出会抛出IndexError错误: list index out of range
header=[1, 3]中的1表示按行索引读取第几行,3表示按行索引从第几行开始往后读取。
当输入的最后一个值为最后一行时,如:header=[2, 4],显示方式为:
Empty DataFrame
Columns: [(2, 4), (bob, jons), (19, 18), (man, woman)]
Index: []
当一列中含有空行时,header用list时不能包含空行
names:值为list或者str,默认None,一般使用list传参
指定表头的名称,list内的值跟表的列数要一一对应,即不能多也不能少,多或者少都会抛出ValueError错误: Number of passed names did not match number of header fields in the file
使用str类型传参时会循环出每一个字符在赋值给每一个表头,即不能多也不能少,多或者少都会抛出ValueError错误。
举栗子:
pd.read_excel(f_path, sheet_name=0, header=1, names='asdf')
a s d f
0 2 bob 19 man
1 3 Alice 21 woman
2 4 Peter 18 man
字符重复时,会自动在后面追加数字,从1开始,如:names='aaaa'
a a.1 a.2 a.3
0 2 bob 19 man
1 3 Alice 21 woman
2 4 Peter 18 man
index_col:值为int或str类型,默认None,指定第几列做为新的索引列
int时,按索引传参,超出列的长度后会抛出IndexError错误: list index out of range
str时,按第一行的列名传入,不存在该列名时抛出ValueError错误: Index age invalid
skiprows:值为int类型,默认None,跳过指定行(包括)之前的行开始读取
传入的值从1开始的任意int类型,超出行的长度不报错,显示为空,如下:
Empty DataFrame
Columns: []
Index: []
只剩最后一条数据时,显示如下:
Empty DataFrame
Columns: [4, Peter, 18, man]
Index: []
nrows:值为int类型,默认None,只取前n行数据,按索引传参
传入值为0时,只取第一行,显示如下:
Empty DataFrame
Columns: [1, jack, 22, man]
Index: []
传入其余值时,只显示该值(包括)之前的行,超出行的长度后不报错,有多少行显示多少行
后续更新中。。。。。