使用 Python 读取电子表格中的数据实例详解


Posted in Python onApril 17, 2020

Python 是最流行、功能最强大的编程语言之一。由于它是自由开源的,因此每个人都可以使用。大多数 Fedora 系统都已安装了该语言。Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数据。CSV文件一开始往往是以表格或电子表格的形式出现。本文介绍了如何在 Python 3 中处理 CSV 数据。

CSV 数据正如其名。CSV 文件按行放置数据,数值之间用逗号分隔。每行由相同的字段定义。简短的 CSV 文件通常易于阅读和理解。但是较长的数据文件或具有更多字段的数据文件可能很难用肉眼解析,因此在这种情况下计算机做得更好。

这是一个简单的示例,其中的字段是 NameEmail Country。在此例中,CSV 数据将字段定义作为第一行,尽管并非总是如此。

Name,Email,Country
John Q. Smith,jqsmith@example.com,USA
Petr Novak,pnovak@example.com,CZ
Bernard Jones,bjones@example.com,UK

从电子表格读取 CSV

Python 包含了一个 csv 模块,它可读取和写入 CSV 数据。大多数电子表格应用,无论是原生(例如 Excel 或 Numbers)还是基于 Web 的(例如 Google Sheet),都可以导出 CSV 数据。实际上,许多其他可发布表格报告的服务也可以导出为 CSV(例如,PayPal)。

Python csv 模块有一个名为 DictReader 的内置读取器方法,它可以将每个数据行作为有序字典 (OrderedDict) 处理。它需要一个文件对象访问 CSV 数据。因此,如果上面的文件在当前目录中为 example.csv,那么以下代码段是获取此数据的一种方法:

f = open('example.csv', 'r')
from csv import DictReader
d = DictReader(f)
data = []
for row in d:
  data.append(row)

现在,内存中的 data 对象是 OrderedDict 对象的列表:

[OrderedDict([('Name', 'John Q. Smith'),
        ('Email', 'jqsmith@example.com'),
        ('Country', 'USA')]),
 OrderedDict([('Name', 'Petr Novak'),
        ('Email', 'pnovak@example.com'),
        ('Country', 'CZ')]),
 OrderedDict([('Name', 'Bernard Jones'),
        ('Email', 'bjones@example.com'),
        ('Country', 'UK')])]

引用这些对象很容易:

>>> print(data[0]['Country'])
USA
>>> print(data[2]['Email'])
bjones@example.com

顺便说一句,如果你需要处理没有字段名标题行的 CSV 文件,那么 DictReader 类可以让你定义它们。在上面的示例中,添加 fieldnames 参数并传递一系列名称:

d = DictReader(f, fieldnames=['Name', 'Email', 'Country'])

真实例子

我最近想从一长串人员名单中随机选择一个中奖者。我从电子表格中提取的 CSV 数据是一个简单的名字和邮件地址列表。

幸运的是,Python 有一个有用的 random 模块,可以很好地生成随机值。该模块 Random 类中的 randrange 函数正是我需要的。你可以给它一个常规的数字范围(例如整数),以及它们之间的步长值。然后,该函数会生成一个随机结果,这意味着我可以在数据的总行数范围内获得一个随机整数(或者说是行号)。

这个小程序运行良好:

from csv import DictReader
from random import Random
d = DictReader(open('mydata.csv'))
data = []
for row in d:
  data.append(row)
r = Random()
winner = data[r.randrange(0, len(data), 1)]
print('The winner is:', winner['Name'])
print('Email address:', winner['Email'])

显然,这个例子非常简单。电子表格本身包含了复杂的分析数据的方法。但是,如果你想在电子表格应用之外做某事,Python 或许是一种技巧!

总结

到此这篇关于使用 Python 读取电子表格中的数据实例详解的文章就介绍到这了,更多相关python 读取表格数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python获取图片颜色信息的方法
Mar 18 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
python机器学习之神经网络(二)
Dec 20 Python
Tensorflow卷积神经网络实例
May 24 Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 Python
Puppeteer使用示例详解
Jun 20 Python
Spring @Enable模块驱动原理及使用实例
Jun 23 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
详解Pymongo常用查询方法总结
Jan 29 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 #Python
jupyternotebook 撤销删除的操作方式
Apr 17 #Python
使用python matplotlib 画图导入到word中如何保证分辨率
Apr 16 #Python
jupyter notebook读取/导出文件/图片实例
Apr 16 #Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 #Python
python datetime处理时间小结
Apr 16 #Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 #Python
You might like
php以post形式发送xml的方法
2014/11/04 PHP
浅谈php的优缺点
2015/07/14 PHP
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
详解Python装饰器由浅入深
2016/12/09 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
html5 div布局与table布局详解
2016/11/16 HTML / CSS
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
《争吵》教学反思
2014/02/15 职场文书
家长给学校的建议书
2014/05/15 职场文书
服装发布会策划方案
2014/05/22 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
初中优秀学生评语
2014/12/29 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
利用Apache Common将java对象池化的问题
2022/06/16 Servers