Python-Excel文件读写
1、Excel文件读取
import pandas as pd import numpy as np data=pd.read_excel('/Users/xxx/data.xlsx',sheet_name=1,names=['F1','F2','F3','F4','F5','F6','F7'],header=None,skiprows=1)
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类型:['var1','var2'],为表格中列名;
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') 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)
pd.read_excel( io, #string类型文件的路径或url. '/.../data.xlsx' sheet_name=0, #指定的excel中的具体某个或某些表的表名或表索引. header=0, #以哪些行作为表头,也叫做列名. names=None, #自己定义一个表头(列名). index_col=None, #将哪些列设为索引. usecols=None, #指定读取excel中哪些列的数据,默认为None,表示读取全部., squeeze=False, #默认为False,如果解析的数据只包含一列,则返回一个Series。 dtype=None, #接收dict,设置数据类型,具体到每列. engine=None, #如果io不是缓冲区或路径,则必须将其设置为标识io。可接受的值是None、“xlrd”、“openpyxl”或“odf”. converters=None, #类型为字典(dict).默认为None.进行值转换。{列名:str} true_values=None, #默认:None,接收一个list,将在list中的值转换成True,只有在整列值都能转换成bool值时才能成功。 false_values=None, #默认:None,接收一个list,将在list中的值转换成False,只有在整列值都能转换成bool值时才能成功。 skiprows=None, #跳过excel中的某些行来读取数据. nrows=None, #指定要读取excel表中哪些行的数据. na_values=None, #设置指定值填充为NaN. keep_default_na=True, verbose=False, #布尔类型, 默认为 False.显示列表中除去数字列,NA值的数量. parse_dates=False, #指定解析成日期格式的列. date_parser=None, #funtion.指定解析日期格式的函数. thousands=None, #将字符串列解析为数字的数千个分隔符。 comment=None, #将一个或多个字符传递给此参数以指示输入文件中的注释。 skipfooter=0, #省略指定行数的数据,从尾部数的行开始。 convert_float=True, #布尔, 默认为 True.将积分浮点数转换为int(即1.0 - > 1)。 mangle_dupe_cols=True, #布尔类型,默认为True.重复列将被指定为“X”、“X.1”、“X.N”. **kwds)
2、data.to_excel('/Users/xxx/test.xlsx')
to_excel()方法的功能是将DataFrame对象写入到Excel工作表中,语法格式如下:
pd.to_excel(excel_writer,sheet_name=‘sheet1’,na_rep=’ ’ ,float_format=None,columns=None,header=True,index=True,index_label=None,startrow=0,startcol=0,engine=None,merge_cells=True,encoding=None,inf_rep=‘inf’,verbose=True,freeze_panes=None)
上述方法中常用参数的含义有以下几个:
1. excel_writer:表示读取得文件路径
2. sheet_name:表示工作表的名称,可以接受字符串,默认为“sheet1”
3. na_rep:表示缺失数据,不写默认为空
4. index:表示是否写行索引,默认为True