zoukankan      html  css  js  c++  java
  • 如何用Python读取电子表格中的数据,面试必学

     

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

    这里要注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果如果你没有python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教!

    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教程项目,还可以跟老司机交流讨教!
    本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

  • 相关阅读:
    vim在插入模式下的粘贴
    关于外语学习的7个“美丽误会”(图)
    美国在线教育的启示:教育领域正在革命
    自动生成计算题
    字符串的截取,分割,替换
    将字符串转成byte,然后再转回来 日期相互转化字符串
    java编写的万年历代码
    小球弹砖块游戏(JAVA)
    随即输入一段字符串,统计出数字,大写字母。小写字母,空格
    邮箱验证信息
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12715846.html
Copyright © 2011-2022 走看看