Py学习  »  Python

Python一条龙:创建、读取、更新、搜索Excel文件

量化投资与机器学习 • 4 年前 • 743 次点击  


标星★公众号     爱你们

作者:Goran Aviani

编译:公众号海外部

近期原创文章:

♥ 基于无监督学习的期权定价异常检测(代码+数据)

♥ 5种机器学习算法在预测股价的应用(代码+数据)

♥ 深入研读:利用Twitter情绪去预测股市

♥ Two Sigma用新闻来预测股价走势,带你吊打Kaggle

 利用深度学习最新前沿预测股价走势

♥ 一位数据科学PhD眼中的算法交易

♥ 基于RNN和LSTM的股市预测方法

♥ 人工智能『AI』应用算法交易,7个必踩的坑!

♥ 神经网络在算法交易上的应用系列(一)

♥ 预测股市 | 如何避免p-Hacking,为什么你要看涨?

♥ 如何鉴别那些用深度学习预测股价的花哨模型?

♥ 优化强化学习Q-learning算法进行股市



第1部分:CSV文件

CSV文件是由逗号分隔的值文件,其中纯文本数据以表格格式显示。它们可以与任何电子表格程序一起使用,如Microsoft Office Excel、Google Spreadsheets或LibreOffice Calc


CSV文件与其他电子表格文件不同,因为它们不允许保存单元格、列、行或公式。它们的限制是每个文件只允许一个工作表。


写入CSV文件


首先,打开一个新的Python文件并导入Python CSV模块。


CSV模块


CSV模块包含所有内置的必要方法。这些包括:


  • csv.reader

  • csv.writer

  • csv.DictReader

  • csv.DictWriter

  • 其他


我们将重点介绍writer,DictWriter和DictReader方法。它们允许你编辑,修改和操作存储在CSV文件中的数据。


在第一步中,我们需要定义文件的名称并将其保存为变量。我们应该对题和数据信息做同样的处理。


现在我们需要创建一个名为writer的函数,它将接受三个参数:header,data和filename。


下一步是修改writer函数,使它创建一个文件来保存来自header和数据变量的数据。


我们创建了第一个名为imdb_top_4.csv的CSV文件。使用你首选的电子表格应用程序打开此文件,会看到如下内容:



如果你选择在其他应用程序中打开文件,结果可能是这的:



更新CSV文件

如果要更新这个文件,你应该创建一个名为updater的新函数,它只接受一个名为filename的参数。


这个函数首先打开filename变量中定义的文件,然后将从文件中读取的所有数据保存在名为readData的变量中。第二步是对新值进行硬编码,并将其置于readData [0] ['Rating']。


函数中的最后一步是通过添加一个新的参数update来调用writer函数,该参数更新将告诉函数你正在执行更新。


csv.DictReader的官方Python文档中有更多解释:


https://docs.python.org/3/library/csv.html#dialects-and-formatting-parameters


若要writer处理新参数,需要在定义writer的任何地方添加一个新参数。回到最初调用writer函数的地方,添加“write”作为一个新参数:


就在writer函数下面调用updater并将filename参数传递给它:


现在,你需要修改writer函数,以接受一个名为option的新参数:


从现在开始,我们希望收到writer函数的两个不同选项(写入和更新)。因此,我们应该添加两个if语句来支持这个新功能。函数 “if option == “write:” 下的第一部分你已经知道了。你只需要添加 “elif option == “update”:,代码:



第2部分:xlsx文件

使用Python3和openpyxl库构建了这个解决方案。之所以选择openpyxl,是因为可以它可以创建工作表、加载、更新、重命名和删除工作表的完整表现。它还允许我们读或写行和列,合并或取消合并单元格或创建Python excel图表等。


代码,代码再这里:


https://github.com/GoranAviani/Manipulate-Excel-spreadsheets


Openpyxl


1、Workbook是Openpyxl中Excel文件的名称。


2、工作簿由工作表组成(默认为1个工作表),表格以其名称引用。


3、表格(sheet)由数字1开始的行(水平线)和从字母A开始的列(竖线)组成。


Openpyxl有很好的文档,看这里:


https://openpyxl.readthedocs.io/en/stable/



作者还开发一个很有趣的在线应用程序:


https://tools.incodaq.com/


挺实用。大家可以自己试试。




点击join,然后就变成这样了。



MATLAB EXPO 2019 微信直播



免费!免费!免费!


—End—


量化投资与机器学习微信公众号,是业内垂直于QuantMFECST等专业的主流量化自媒体。公众号拥有来自公募、私募、券商、银行、海外等众多圈内10W+关注者。每日发布行业前沿研究成果和最新资讯。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33626
 
743 次点击