Python处理csv步骤详解

简介: Python处理csv步骤详解

CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看。由于是纯文本,任何编辑器也都可打开。与Excel文件不同,CSV文件中:

值没有类型,所有值都是字符串
不能指定字体颜色等样式
不能指定单元格的宽高,不能合并单元格
没有多个工作表
不能嵌入图像图表
在CSV文件中,以,作为分隔符,分隔两个单元格。像这样a,,c表示单元格a和单元格c之间有个空白的单元格。依此类推。

不是每个逗号都表示单元格之间的分界。所以即使CSV是纯文本文件,也坚持使用专门的模块进行处理。Python内置了csv模块。先看看一个简单的例子。

从CSV文件中读取数据
import csv

filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'
with open(filename) as f:
reader = csv.reader(f)
print(list(reader))
data不能直接打印,list(data)最外层是list,里层的每一行数据都在一个list中,有点像这样

[['name', 'age'], ['Bob', '14'], ['Tom', '23'], ...]

//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjgyMTg5Mg==.html
于是我们可以这样访问到Bob的年龄reader[1][1], 在for循环中遍历如下

import csv

filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'
with open(filename) as f:
reader = csv.reader(f)
for row in reader:

    # 行号从1开始
    print(reader.line_num, row)

截取一部分输出

1 ['AKST', 'Max TemperatureF', 'Mean TemperatureF', 'Min TemperatureF', 'Max Dew PointF', 'MeanDew PointF', 'Min DewpointF', 'Max Humidity', ' Mean Humidity', ' Min Humidity', ' Max Sea Level PressureIn', ' Mean Sea Level PressureIn', ' Min Sea Level PressureIn', ' Max VisibilityMiles', ' Mean VisibilityMiles', ' Min VisibilityMiles', ' Max Wind SpeedMPH', ' Mean Wind SpeedMPH', ' Max Gust SpeedMPH', 'PrecipitationIn', ' CloudCover', ' Events', ' WindDirDegrees']
2 ['2014-1-1', '46', '42', '37', '40', '38', '36', '97', '86', '76', '29.95', '29.77', '29.57', '10', '8', '2', '25', '14', '36', '0.69', '8', 'Rain', '138']
...
前面的数字是行号,从1开始,可以用reader.line_num获取。

要注意的是,reader只能被遍历一次。由于reader是可迭代对象,可以使用next方法一次获取一行。

import csv

filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'
with open(filename) as f:
reader = csv.reader(f)

# 读取一行,下面的reader中已经没有该行了
head_row = next(reader)
for row in reader:
    # 行号从2开始
    print(reader.line_num, row)

写数据到csv文件中
有reader可以读取,当然也有writer可以写入。一次写入一行,一次写入多行都可以。

import csv

使用数字和字符串的数字都可以

datas = [['name', 'age'],
['Bob', 14],
['Tom', 23],
['Jerry', '18']]

with open('example.csv', 'w', newline='') as f:
writer = csv.writer(f)
for row in datas:
writer.writerow(row)

# 还可以写入多行
writer.writerows(datas)

如果不指定newline='',则每写入一行将有一空行被写入。上面的代码生成如下内容。

name,age
Bob,14
Tom,23
Jerry,18
name,age
Bob,14
Tom,23
Jerry,18
DictReader和DictWriter对象
使用DictReader可以像操作字典那样获取数据,把表的第一行(一般是标头)作为key。可访问每一行中那个某个key对应的数据。

import csv

//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjgyMDM3Mg==.html

filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'
with open(filename) as f:
reader = csv.DictReader(f)
for row in reader:

    # Max TemperatureF是表第一行的某个数据,作为key
    max_temp = row['Max TemperatureF']
    print(max_temp)
相关文章
|
1月前
|
Python
python文件读写操作的三大基本步骤
python文件读写操作的三大基本步骤
50 0
|
1月前
|
存储 Python
用python将csv转excel (.xls和.xlsx)的几种方式
用python将csv转excel (.xls和.xlsx)的几种方式
165 4
|
1月前
|
并行计算 算法框架/工具 iOS开发
在RTX3050上安装python3.9、anaconda、pycharm、cuda11.6、cudnn、jupyter等工具的详细步骤和方法
在RTX3050上安装python3.9、anaconda、pycharm、cuda11.6、cudnn、jupyter等工具的详细步骤和方法
96 3
|
15天前
|
存储 数据可视化 Python
使用Python进行数据可视化(三、处理csv文件)
使用Python进行数据可视化(三、处理csv文件)
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
利用Python进行数据分析的基本步骤与技巧
【2月更文挑战第22天】 在数据驱动的时代,能够有效进行数据分析是获取信息优势的关键。本文将介绍使用Python语言进行数据分析的基础流程和实用技巧,旨在帮助初学者快速入门并掌握数据处理、分析和可视化的核心方法。文章将详细阐述如何通过Python的Pandas库来处理数据集,使用NumPy进行数值计算,以及利用Matplotlib和Seaborn库创建直观的数据可视化图表。此外,我们还将讨论数据清洗、转换、聚合以及模型拟合等高级分析技术。
|
1月前
|
Python
python_读写excel、csv记录
python_读写excel、csv记录
27 0
|
4天前
|
存储 数据挖掘 BI
Python字典在CSV数据统计中的应用
Python字典在CSV数据统计中的应用
9 1
|
9天前
|
网络安全 网络虚拟化 数据安全/隐私保护
使用Python实现VPN搭建的流程步骤
保护个人隐私和数据安全变得尤为重要。VPN(虚拟私人网络)是一种有效的解决方案,可以帮助我们在网络上匿名浏览,保护数据传输的安全性。虽然市面上有许多商业VPN服务,但你也可以通过Python自己搭建一个简单的VPN。本文将介绍如何用Python建立自己的VPN。
|
15天前
|
数据可视化 Python
使用Python进行数据可视化(三、处理csv文件(二))
使用Python进行数据可视化(三、处理csv文件(二))
|
1月前
|
数据采集 数据挖掘 关系型数据库
2024年最新【python基础教程】csv文件的写入与读取(1),面试官不讲武德
2024年最新【python基础教程】csv文件的写入与读取(1),面试官不讲武德

热门文章

最新文章