快乐学Python,使用Python将数据写入CSV文件中

今天我们来了解一下在数据分析领域最为常见一种文件格式:CSV 文件,然后我们再将上一篇文章案例中抓取到的数据保存到 CSV 文件中。

1、什么是CSV文件?

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

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

比如我们新建一个文件,名称改为:info.csv,在文件中输入以下数据:

姓名,年龄,籍贯,部门

小明,22,河北,IT部

小亮,25,广东,IT部

小E,23,四川,财务部


保存成功后,我们使用excel打开这个csv文件,可以看到:

打开后的展示样式与excel基本一样,在这里,我们需要注意csv文件的一些事项:

  • 表格中的一行,对应 CSV 文件中的一行;
  • 一行中不同单元格的内容,在 CSV 文件中用逗号分隔;
  • 务必保证每行的逗号数量是一致的(对应表格中每行的单元格一致)。

在了解csv的格式后,下面我们再来看一下Python中关于csv的模块。

2、Python中的csv模块

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

(1)从csv文件中读取内容

现在我们来读取上面的info.csv文件内容。

现在VS CODE 中新建一个cell,导入csv模块

import csv


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

# 通过 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)


输出如下:

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


接下来,我们尝试获取表格的实际内容。

# 打开 info.csv 

fo = open("info.csv ")

# 创建 DictReader 对象

reader = CSV.DictReader(fo)

# 创建列表,用于存储读到的行

row_list = []

# 使用遍历循环,直接对 reader 对象进行遍历

# 每次执行循环时,row 变量都存储了当前行的内容

for row in reader:

    # 直接将 row 变量添加到行列表中

    row_list.append(row)

# 关闭文件

fo.close()

# 打印第一行的表格数据

print(row_list[0])


打印的结果显示:

{'姓名': '小明', '年龄': '22', '籍贯': '河北', '部门': 'IT部'}


可以看到,我们拿到了第一行的内容,并且是以字典的形式,字典把每个单元格的内容和表头联系了起来,表头是 key,而具体内容就是 value。每行都是这样的一个字典,所有字典都存储在 row_list 列表中。

接下来,我们来演示对于 row_list 列表的常见操作:打印某一行、某一列的值。

print("打印年龄一列的内容:")

# 遍历循环 row_list,d 为循环变量 

for d in row_list:

    # 因为 d 是字典,直接打印 key 为 年龄的值即可。

    print(d["年龄"])

# 打印一个换行

print("")

print("打印第三行的内容:")

d = row_list[2]

print("姓名:", d["姓名"])

print("年龄:",d["年龄"])

print("籍贯:",d["籍贯"])

print(&
  • 41
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值