个性化阅读
专注于IT技术分析

Python如何读取csv文件?答案在这里————

本文概述

CSV文件

csv代表”逗号分隔值”, 它定义为一种简单的文件格式, 使用特定的结构来排列表格数据。它以纯文本格式存储表格数据, 例如电子表格或数据库, 并具有通用的数据交换格式。一个csv文件将打开到excel工作表中, 并且行和列数据定义了标准格式。

Python CSV模块功能

CSV模块工作用于处理CSV文件以从指定列读取/写入和获取数据。 CSV函数有不同类型, 如下所示:

  • csv.field_size_limit-返回解析器允许的当前最大字段大小。
  • csv.get_dialect-返回与名称关联的方言。
  • csv.list_dialects-返回所有已注册方言的名称。
  • csv.reader-从csv文件读取数据
  • csv.register_dialect-将方言与名称相关联。名称必须是字符串或Unicode对象。
  • csv.writer-将数据写入csv文件
  • csv.unregister_dialect-它从方言注册表中删除与该名称关联的方言。如果名称不是注册的方言名称, 则将引发错误。
  • csv.QUOTE_ALL-它指示编写器对象引用所有字段。 csv.QUOTE_MINIMAL-它指示编写器对象仅引用那些包含特殊字符(如quotechar, delimiter等)的字段。
  • csv.QUOTE_NONNUMERIC-它指示编写器对象引用所有非数字字段。
  • csv.QUOTE_NONE-它指示writer对象不要引用字段。

读取CSV文件

在Python中, csv.reader()模块用于读取csv文件。它占用文件的每一行, 并列出所有列。

我们获取了一个名为python.txt的txt文件, 该文件的默认分隔符为comma(, ), 其中包含以下数据:

name, department, birthday month
Parker, Accounting, November
Smith, IT, October

代码

import csv
with open('python.txt') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=', ')
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'Column names are {", ".join(row)}')
            line_count += 1

输出

Column names are name, department, birthday month
  Parker works in the Accounting department, and was born in November.
  Smith works in the IT department, and was born in October.
Processed 3 lines.

将CSV读入字典

我们还可以使用DictReader将csv文件直接读入字典, 而不用处理单个String元素的列表。

同样, 我们的输入文件python.txt如下所示:

name, department, birthday month
Parker, Accounting, November
Smith, IT, October

代码

import csv

with open('python.txt', mode='r') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'The Column names are as follows {", ".join(row)}')
            line_count += 1
        print(f'\t{row["name"]} works in the {row["department"]} department, and was born in {row["birthday month"]}.')
        line_count += 1
    print(f'Processed {line_count} lines.')

输出

The Column names are as follows name, department, birthday month
   Parker works in the Accounting department, and was born in November.
   Smith works in the IT department, and was born in October.
Processed 3 lines.

用熊猫读取csv文件

Pandas被定义为在NumPy库顶部构建的开源库。它为用户提供快速的分析, 数据清理和数据准备。

将csv文件读入pandas DataFrame是快速而直接的。我们不需要编写足够的代码行即可在熊猫中打开, 分析和读取csv文件, 并将其存储在DataFrame中。

在这里, 我们正在读取一个稍微复杂的文件hrdata.csv, 其中包含公司员工的数据。

Name, Hire Date, Salary, Leaves Remaining
John Idle, 08/15/14, 50000.00, 10
Smith Gilliam, 04/07/15, 65000.00, 8
Parker Chapman, 02/21/14, 45000.00, 10
Jones Palin, 10/14/13, 70000.00, 3
Terry Gilliam, 07/22/14, 48000.00, 7
Michael Palin, 06/28/13, 66000.00, 8

代码

import pandas
df = pandas.read_csv('hrdata.csv')
print(df)

在上面的代码中, 三行足以读取文件, 并且只有其中一行正在执行实际工作, 即pandas.read_csv()

输出

Name                Hire Date     Salary            Leaves Remaining
0     John Idle             03/15/14     50000.0                   10
1     Smith Gilliam         06/01/15     65000.0                    8
2     Parker Chapman        05/12/14     45000.0                   10
3     Jones Palin           11/01/13     70000.0                    3
4     Terry Gilliam         08/12/14     48000.0                    7
5     Michael Palin         05/23/13     66000.0                    8
赞(0) 打赏
未经允许不得转载:srcmini » Python如何读取csv文件?答案在这里————
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏