使用 Python 读取电子表格中的数据实例详解
本文详解如何使用 Python 的 csv 模块读取 CSV 格式的电子表格数据。通过 DictReader 将数据行转换为有序字典,实现按字段名访问。同时结合 random 模块的 randrange 函数,演示如何从数据列表中随机抽取记录,适用于抽奖或样本选取场景。
Python 处理 CSV 数据的基础
Python 作为自由开源的编程语言,在 Fedora 等系统中通常已预装。它非常适合处理逗号分隔值(CSV)数据。CSV 文件按行存储数据,数值间以逗号分隔,且每行包含相同的字段定义。Excel、Numbers、Google Sheet 等工具均可导出为 CSV 格式,PayPal 等服务也支持此导出方式。
使用 DictReader 读取数据
Python 内置的 csv 模块提供了 DictReader 方法,可将数据行作为有序字典(OrderedDict)处理。该方法需要传入文件对象以访问 CSV 数据。
假设示例文件名为 example.csv 且位于当前目录,其内容如下:
Name,Email,Country
John Q. Smith,jqsmith@example.com,USA
Petr Novak,pnovak@example.com,CZ
Bernard Jones,bjones@example.com,UK读取并处理数据的代码如下:
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')])]可通过索引引用 data 对象中的元素,例如:
>>> print(data[0]['Country'])
USA
>>> print(data[2]['Email'])
bjones@example.com处理无标题行的 CSV
若 CSV 文件没有标题行,需定义 fieldnames 参数,并传递一系列名称:
d = DictReader(f, fieldnames=['Name', 'Email', 'Country'])结合 random 模块进行随机抽取
Python 的 random 模块包含 Random 类,其 randrange 函数接受数字范围和步长值,生成范围内的随机整数。结合 DictReader,可实现从数据中随机选取记录:
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'])以上代码演示了如何从 mydata.csv 中随机抽取一条记录并打印其姓名和邮箱。
总结
通过 csv.DictReader 和 random.randrange,可以高效地读取电子表格数据并进行随机处理。以上就是使用 Python 读取电子表格中的数据实例详解的详细内容,更多关于 Python 数据处理、CSV 操作及 random 模块的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













