有些excel不够规范,所以读取excel的时候要选择指定的列或者行数据,read_excel函数的usecols用来指定列,而skip_rows用来过滤行。
usecols参数可选类型:
1、默认是None,全选
2、str类型:'A,B,C'或者'A:C'或者'A,B:C'
3、int-list类型:[0,1]
4、str-list类型:['data1','data2'],为表格中列名
5、函数:会把列名传入判断函数结果是否为True,可以用或|来做多个判断
skiprows参数可选类型:
1、int类型:1代表跳过1行,不是索引1的意思
2、int-list类型:[0,1]代表跳过索引为0和1的行
代码演示如下:
# -*- coding: utf-8 -*-
import pandas as pd
df = pd.read_excel('aa.xlsx')
print(df)
print('---------------')
df1 = pd.read_excel('aa.xlsx',usecols='B:E',skiprows=[0])
df2 = pd.read_excel('aa.xlsx',usecols='B,C,D,E',skiprows=[0])
df3 = pd.read_excel('aa.xlsx',usecols=[1,2,3,4],skiprows=[0])
df4 = pd.read_excel('aa.xlsx',usecols=['id','name','sex','age'],skiprows=[0])
df4 = pd.read_excel('aa.xlsx',usecols=lambda x:x in ['id','name','sex','age'],skiprows=[0])
df5 = pd.read_excel('aa.xlsx',usecols=lambda x:x in ['id','name','sex','age'],skiprows=1)
print(df1==df2)
print('----------')
print(df2==df3)
print('-----------')
print(df3==df4)
print('------------')
print(df4==df5)
Unnamed: 0 Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
0 NaN id name sex age
1 NaN 1 a 男 18
2 NaN 2 b 男 18
3 NaN 3 c 男 18
4 NaN 4 d 女 18
5 NaN 5 e 妖 18
---------------
id name sex age
0 True True True True
1 True True True True
2 True True True True
3 True True True True
4 True True True True
----------
id name sex age
0 True True True True
1 True True True True
2 True True True True
3 True True True True
4 True True True True
-----------
id name sex age
0 True True True True
1 True True True True
2 True True True True
3 True True True True
4 True True True True
------------
id name sex age
0 True True True True
1 True True True True
2 True True True True
3 True True True True
4 True True True True