python excel操作

本文对比了Excel与CSV文件格式的特点,并介绍了如何使用Python的xlrd、xlwt、openpyxl和pandas库进行Excel文件的读写操作。详细讲解了pandas库中read_excel和to_excel函数的使用方法,包括读取指定工作表、处理数据头部和尾部、指定列名和行索引,以及将DataFrame数据写入单个工作表或多个工作表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.excel文件

ExcelMicrosoft为使用WindowsApple Macintosh操作系统的电脑编写的一款电子表格软件,数据分析处理只关心数据,不关心样式

Excel  vs   CSV

都可以通过Microsoft的Excel程序打开

Excel:除了文本,数据也可以包含图表、样式、工作簿等

CSV:每条记录都存储为一行文本文件,每一条新行都表示一个新的数据记录。CSV不能存储图表或样式

2.excel文件操作

使用Python进行Excel文件操作的方法有很多种,如:

使用xlrd库读取Excel数据

使用xlwt库向Excel中写入数据,创建工作表等

使用openpyxl库读写excel数据

使用pandas库读写Excel数据

pd.read_excel(io, sheet_name=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=None, encoding=None, parse_cols=None, parse_dates=False, date_parser=None, na_values=None, thousands=None, convert_float=True, has_index_names=None, converters=None, dtype=None, true_values=None, false_values=None, engine=None, squeeze=False, **kwds)

DataFrame.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)

常用参数:

io: excel文件,可以是文件路径、文件网址、file-like对象、xlrd workbook;

Sheet_name:返回指定的sheet,参数可以是字符串(sheet名)、整型(sheet索引)、list(元素为字符串和整型,返回字典{'key':'sheet'})、none(返回字典,全部sheet;

header:指定数据表的表头,参数可以是intlist of ints,即为索引行数为表头;

names:返回指定name的列,参数为array-like对象。

encoding:关键字参数,指定以何种编码读取。

该函数返回pandas中的DataFramedict of DataFrame对象,利用DataFrame的相关操作即可读取相应的数据。

1)读取指定工作表中的数据

sheet = pd.read_excel(‘happiness.xlsx,sheet_name= [0,1])  #通过工作表索引号指定,此例是读取前两个工作表中的数据

sheet = pd.read_excel(‘happiness.xlsx,sheet_name= [‘2015’,’2016’])  #通过工作表名称指定,此例是读取前两个工作表中的数据

#参数为None时,返回全部的表格,是一个表格的字典;

#当参数为list = [01]时,返回的多表格同样是字典;

sheet = pd.read_excel(‘happiness.xlsx,sheet_name= ‘2015’)

sheet = pd.read_excel(‘happiness.xlsx,sheet_name= 1])

#只指定一个工作表时,返回的是dataframe

2)其他操作

sheet = pd.read_excel(‘happiness.xlsx,sheet_name=1header=None)  #不含作为列名的行,显示列索引值。如果header默认值为0,读取第一行数据作为列名。

sheet = pd.read_excel(‘happiness.xlsx’, sheet_name=1 ,skiprows=1])  #略去第一行的数据

sheet = pd.read_excel(‘happiness.xlsx,sheet_name= 1,skip_footer=1])  #略去最后一行数据

sheet = pd.read_excel(‘happiness.xlsx,sheet_name= 1,index_col=1])  #指定第二列作为行索引

sheet = pd.read_excel(‘happiness.xlsx,sheet_name= 1,names=[‘a’,b’,’c’])  #指定列名,列名数要和显示列数相同

 

3)单一工作表数据写入

sheet = pd.read_excel(‘happiness.xlsx,sheet_name=1)

Sheet_top5 = sheet.head(5)

Sheet_top5 .to_excel((‘ha_top5.xlsx’)

Sheet_top5 .to_excel(‘ha_top5.xlsx’,sheet_name=‘top5’)

Sheet_top10 = sheet.head(10)

Sheet_top10 .to_excel(‘ha_top10.xlsx’,sheet_name=‘top10’)

4)多个工作表数据写入

writer = pd.ExcelWriter(‘happiness_top.xlsx’)

df_data = pd.read_excel(‘happiness.xlsx’, sheetname=['2015', '2017'])

Top5_2015=df_data[‘2015’].head()

Top5_2015.to_excel(writer,’2015-top5’)

Top10_2017=df_data[‘2017’].head(10)

Top10_2017.to_excel(writer,’2017-top10’)

writer.save()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值