c++ 读写excel_Python和excel的交互在债券中的应用

接着上一篇Python和wind的交互,本文讲解如何用Python和excel进行交互,包括读取excel和输入到excel。

学习一门新知识的时候,有时候觉得很难,很可能是因为讲的不够好,而并非自身学习能力不行。本文是我在初学的时候的总结,希望能帮到初学者。 一、读取和写入excel—基础篇 首先我们先安装好所需要模块,安装方法在前一篇文章Python和wind的交互—在债券中的应用详细介绍了。读写excel,需要安装pandas、xlwt、xlrd、openpyxl模块。 导入pandas模块,代码:import pandas as pd。一般这句话每次使用时都最好写上这句话,用pandas来处理excel非常方便。现在可以开始读入excel了,比如我的excel格式是这样的。 d0520f9cee6aa3824841e0b03a8f7900.png 在pycharm的Python console里输入: data=pd.read_excel(r"C:\bao\估值研究\test.xlsx") 即可将我文件夹C:\bao\估值研究\test.xlsx里的名为test的excel文件读入进去,这句代码非常简单,pd.read_excel后面括弧里加入excel所在的文件路径即可,前面加上r,主要是因为Python识别不了中文,现在暂时不用知道其原理。 a0982c0cf88efc530f40c7137d2cf4b9.png 这样excel就被读入到data变量里了,在上图右侧view as dataframe,点击就可以以表格的形式呈现数据,格式也非常好 f58cba7098de8581b89d8d09fd6760fc.png 读取完后之后,现在如果我们想把pycharm里的变量data再输出到我文件夹的excel里,也是用一句话就可以实现 data.to_excel(r"C:\bao\估值研究\result.xlsx") 随便给excel起一个名字为result,和读取excel非常相像,输出后便可在我们指定的文件位置看见一个result的excel文件,打开它,发现多了一列索引: 536ebcf50ee86febe99b738c3fc388dc.png 至此,简单的Python读取excel和输出到excel就实现了,如果想学习更复杂的读取和写入,看第二和第三部分。 二、中阶篇 我们在用excel中可能会存在很多个性化的需求,比如一个excel里有很多sheet,我只想要某个sheet,或者有些sheet太多行和列我只想用某个指定的区域 1、读取指定位置 pd.read_excel里有几十个参数可以选,但是没必要掌握所有的用法,只需要掌握我们日常工作最为常用的几个就可以。 (1)读取指定的sheet:sheet_name参数 增加参数,只需要往括号里加入参数名=XX即可,参数位置也不分前后,pycharm还有自动提示功能,非常智能。比如我想读取sheet名为bao的数据,只需在后面加一句sheet_name='bao',如果sheet没有命名,第一个sheet则输入sheet_name=0,第二个sheet则输入sheet_name=1,依次类推。 data=pd.read_excel(r"C:\bao\估值研究\test.xlsx",sheet_name='bao') (2)读取指定的列:usecols参数 在我的test文件里,如果我只想要指定的A列和D列,只需usecols='A,D'即可只读取A列和D列,如果需要A、B、C列和E列,usecols='A:C,E' data=pd.read_excel(r"C:\bao\估值研究\test.xlsx",usecols='A,D') (3)跳过指定的行:skiprows和nrows参数 由于我们的数据基本上是,列是要素,行是数据,通常行数会很多。因此会有usecols是选择指定列,而到了行则是跳过指定的行。比如我们每天的excel数据是一直往下新增的,我可能只需读取后面新增的数据,这样就可以通过跳过前面若干行来实现。 data=pd.read_excel(r"C:\bao\估值研究\test.xlsx",skiprows = [1, 2, 4]) 这句代码就可以跳过第2、3、5行。如果想跳过前10行,skiprows=10即可。 2、输出到excel (1)去掉索引列 在第一部分可以发现输入到excel里会多一个索引列0、1、2等,这是因为pandas会自动把索引列输出,可以加上index=False。 data.to_excel(r"C:\bao\估值研究\result.xlsx",index=False) (2)同时输出多个数据到不同的sheet里 比如我们想把data放入第一个sheet(命名为bao),data1放入第二个sheet里(命名为yu),则可以用下面几句代码 writer = pd.ExcelWriter(r"C:\bao\估值研究\aa.xlsx")
data.to_excel(writer,'bao')
data1.to_excel(writer,'yu')writer.save()第一句里括弧放入的路径可以是新建命名的excel,也可以是原来就存在该路径下文件(有时候我想将数据返回到我的原始文件中)。第二句和第三句是写入不同的sheet,第四句是保存文件。(3)输入到excel指定的位置如果我只想将data输入到excel的指定位置,比如想输入到excel中第三行和第三列为起始位置。
data.to_excel(r"C:\bao\估值研究\result.xlsx",startrow=2,startcol=2)。 三、高阶篇 1、批量读取sheet表格  比如我想将excel里所有的sheet都读到一个dataframe里,这种情况适用于每个格式相同的数据都放在一个单独的sheet里,如果用前面的方法读取,将需要写循环,较为麻烦。实际上只需要两句代码就可完成 data=pd.read_excel(r"C:\bao\估值研究\test.xlsx",sheet_name=None) df=pd.concat(data,ignore_index=True) 第一句加上一个参数sheet_name=None,也即读取所有的sheet,第二句再将所有的sheet拼接起来。 尤其注意的是,这里要求表头都保持一致。 2、批量读取excel文件
import os,glob
file=glob.glob(os.path.join(r"C:\bao\估值研究","a*.xlsx"))
dl=[]for f in file:
dl.append(pd.read_excel(f))
df=pd.concat(dl)
比如我想读取我估值研究文件下所有以a开头的excel,首先第一句需要导入两个模块,都是pycharm自带的,不需要安装。第二句将所有的文件组成一个file,然后再用循环进行读取,最后组合起来成为dataframe格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值