CSV文件如何读写
写出这篇文章的原因主要是最近在看一本书《Python爬虫开发与实战-从入门到实战》里面提到了CSV
这个模块,我立马进行了尝试,发现非常好用,比之前的xlwt
好用多了。
关键是爬取到数据之后,整个存储数据的逻辑更容易理解(可能还是自己太菜吧😭)本文中介绍的通过pandas
和CSV
模块对数据进行读写操作
写入文件
pandas写入
1 | # 1-pandas写入 |
name | age | height | address | |
---|---|---|---|---|
0 | yangming | 32 | 180 | shenzhen |
1 | xiaoming | 24 | 168 | guangzhou |
2 | zhoujun | 29 | 184 | shanghai |
3 | zhangshan | 20 | 170 | changsha |
1 | # 将DataFrame存储为csv,index表示是否显示行名,default=True |
Unnamed: 0 | name | age | height | address | |
---|---|---|---|---|---|
0 | 0 | yangming | 32 | 180 | shenzhen |
1 | 1 | xiaoming | 24 | 168 | guangzhou |
2 | 2 | zhoujun | 29 | 184 | shanghai |
3 | 3 | zhangshan | 20 | 170 | changsha |
1 | # !!!如何理解index参数 |
name | age | height | address | |
---|---|---|---|---|
0 | yangming | 32 | 180 | shenzhen |
1 | xiaoming | 24 | 168 | guangzhou |
2 | zhoujun | 29 | 184 | shanghai |
3 | zhangshan | 20 | 170 | changsha |
csv写入
字典形式写入
1 | ### csv通过字典形式存储文件 |
1 | import pandas as pd |
name | age | height | address | |
---|---|---|---|---|
0 | yangming | 32 | 180 | shenzhen |
1 | xiaoming | 24 | 168 | guangzhou |
2 | zhoujun | 29 | 184 | shanghai |
3 | zhangshan | 20 | 170 | changsha |
4 | Peter | 28 | 176 | shenzhen |
列表形式写入
1 | # with 语句写在开头,防止属性字段重复写入文件中 |
name | age | height | address | |
---|---|---|---|---|
0 | xiaoming | 19 | 176 | shenzhen |
1 | yanghong | 27 | 180 | guangzhou |
2 | peter | 32 | 172 | shanghai |
3 | Tom | 24 | 183 | changsha |
4 | xiaoming | 19 | 176 | shenzhen |
5 | yanghong | 27 | 180 | guangzhou |
6 | peter | 32 | 172 | shanghai |
7 | Tom | 24 | 183 | changsha |
8 | xiaoming | 19 | 176 | shenzhen |
9 | yanghong | 27 | 180 | guangzhou |
10 | peter | 32 | 172 | shanghai |
11 | Tom | 24 | 183 | changsha |
12 | xiaoming | 19 | 176 | shenzhen |
13 | yanghong | 27 | 180 | guangzhou |
14 | peter | 32 | 172 | shanghai |
15 | Tom | 24 | 183 | changsha |
单行写入
1 | import csv |
1 | pd.read_csv("instance_1.csv") |
name | score | |
---|---|---|
0 | Wang | 100 |
1 | Li | 80 |
2 | xiaosi | 92 |
上下文写入-with
1 | import csv |
name | score | |
---|---|---|
0 | Wang | 100 |
1 | Li | 80 |
2 | xiaosi | 92 |
读文件
pandas读取文件
1 | # 1-通过pandas读取文件 |
name | age | height | address | |
---|---|---|---|---|
0 | yangming | 32 | 180 | shenzhen |
1 | xiaoming | 24 | 168 | guangzhou |
2 | zhoujun | 29 | 184 | shanghai |
3 | zhangshan | 20 | 170 | changsha |
4 | Peter | 28 | 176 | shenzhen |
csv模块读取文件
1 | # 2-通过csv模块读取文件 |
['name', 'age', 'height', 'address']
['xiaoming', '19', '176', 'shenzhen']
['yanghong', '27', '180', 'guangzhou']
['peter', '32', '172', 'shanghai']
['Tom', '24', '183', 'changsha']
['xiaoming', '19', '176', 'shenzhen']
['yanghong', '27', '180', 'guangzhou']
['peter', '32', '172', 'shanghai']
['Tom', '24', '183', 'changsha']
['xiaoming', '19', '176', 'shenzhen']
['yanghong', '27', '180', 'guangzhou']
['peter', '32', '172', 'shanghai']
['Tom', '24', '183', 'changsha']
['xiaoming', '19', '176', 'shenzhen']
['yanghong', '27', '180', 'guangzhou']
['peter', '32', '172', 'shanghai']
['Tom', '24', '183', 'changsha']