数据分析4 -- 将爬取的数据保存成CSV格式

什么是 CSV 文件

CSV(Comma-Separated Values) 是一种使用逗号分隔来实现存储表格数据的文本文件。

我们都知道表格有多种形式的存储,比如 Excel 的格式或者数据库的格式。CSV 文件也可以存储表格数据,并且能够被多种软件兼容,比如 Excel 就能直接打开 CSV 文件的表格,很多数据库软件也支持导入 CSV 文件。除了兼容性好之外,CSV 格式还是所有能存储表格的格式中最简单的一种。

下面,我们以一个例子来讲解 CSV 存储表格的原理。

假设有如下员工信息的表格。

 要存储类似上面的表格,以往我们只能将其输入到 Excel 中并保存为 xlsx 格式,现在我们来尝试将其以 CSV 的格式保存。

打开文本编辑器,如 Windows 下的记事本,新建空白文件。

输入以下内容,并保存为 info.csv (编码选择 ANSI)

姓名,年龄,籍贯,部门
小明,22,河北,IT部
小亮,25,广东,IT部
小E,23,四川,财务部

保存成功后,用 Excel 打开这个文件,可以看到 CSV 文件成功地在 Excel 中展示为表格。

  • 表格中的一行,对应 CSV 文件中的一行;

  • 一行中不同单元格的内容,在 CSV 文件中用逗号分隔;

  • 务必保证每行的逗号数量是一致的(对应表格中每行的单元格一致)。

在我们后续的数据分析任务中,CSV 文件将会是我们存储数据的主要格式。

Python 的 CSV 模块

熟悉了 CSV 文件的基本概念,今天我们来学习如何使用 Python 来操作 CSV 文件。因为对于数据分析场景而言,最常见的操作就是读取和写入。

从 CSV 文件读取内容

要读取 CSV 文件,就要用到 csv 模块中的 DictReader 类,DictReader 可以将每一行以字典的形式读出来,key 就是表头,value 就是对应单元格的内容。

例如:

1. 通过DictReader 对象的创建以及通过 fileldnames 属性获取了 CSV 表格的表头

import csv

# 通过 open 函数打开 info.csv ,并将文件对象保存在 fo 中
fo = open("info.csv")
# 通过打开 CSV 文件的文件对象作为参数来创建 DictReader 类的对象,存在 reader 变量中
reader = csv.DictReader(fo)
# 调用 reader 对象的 fieldnames 属性,获取 CSV 文件中表格的表头
headers = reader.fieldnames
# 关闭文件
fo.close()
# 打印表头的信息
print(headers)

输出:

['姓名', '年龄', '籍贯', '部门']

2. 获取表格实际内容

import csv

# 打开 info.csv ,并将文件对象保存在 f 中
with open("info.csv","r",encoding="utf-8") as f:
    # 通过打开 CSV 文件的文件对象作为参数来创建 DictReader 类的对象,存在 reader 变量中
    reader = csv.DictReader(f)
    # 调用 reader 对象的 fieldnames 属性,获取 CSV 文件中表格的表头
    headers = reader.fieldnames

    # 创建列表,用于存储读到的行
    row_list = []
    # 使用遍历循环,直接对 reader 对象进行遍历
    # 每次执行循环时,row 变量都存储了当前行的内容
    for row in reader:
        # 直接将 row 变量添加到行列表中
        row_list.append(row)

# 打印表头的信息
# print(headers)
# 打印第一行的表格数据
print(row_list[0])

输出:

{'姓名': '小明', '年龄': '22', '籍贯': '河北', '部门': 'IT部'}
  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值