python读取与写入csv格式文件的示例代码


Posted in Python onDecember 16, 2017

在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中。将csv文件中的数据直接读取为 dict 类型和 DataFrame 是非常方便也很省事的一种做法,以下代码以鸢尾花数据为例。

csv文件读取为dict

代码

# -*- coding: utf-8 -*-
import csv
with open('E:/iris.csv') as csvfile:
reader = csv.DictReader(csvfile, fieldnames=None) # fieldnames默认为None,如果所读csv文件没有表头,则需要指定
list_1 = [e for e in reader] # 每行数据作为一个dict存入链表中
csvfile.close()
print list_1[0]

输出

 {'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'}

如果读入的每条数据需要单独处理且数据量较大,推荐逐条处理然后再放入。

list_1 = list()
for e in reader:
 list_1.append(your_func(e)) # your_func为每条数据的处理函数

多条类型为dict的数据写入csv文件

代码

# 数据
data = [
{'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'},
{'Petal.Length': '1.4', 'Sepal.Length': '4.9', 'Petal.Width': '0.2', 'Sepal.Width': '3', 'Species': 'setosa'},
{'Petal.Length': '1.3', 'Sepal.Length': '4.7', 'Petal.Width': '0.2', 'Sepal.Width': '3.2', 'Species': 'setosa'},
{'Petal.Length': '1.5', 'Sepal.Length': '4.6', 'Petal.Width': '0.2', 'Sepal.Width': '3.1', 'Species': 'setosa'}
]
# 表头
header = ['Petal.Length', 'Sepal.Length', 'Petal.Width', 'Sepal.Width', 'Species']
print len(data)
with open('E:/dst.csv', 'wb') as dstfile: #写入方式选择wb,否则有空行
 writer = csv.DictWriter(dstfile, fieldnames=header)
 writer.writeheader() # 写入表头
 writer.writerows(data) # 批量写入
dstfile.close()

上述代码将数据整体写入csv文件,如果数据量较多且想实时查看写入了多少数据可以使用 writerows 函数。

读取csv文件为DataFrame

代码

# 读取csv文件为DataFrame
import pandas as pd
dframe = pd.DataFrame.from_csv('E:/iris.csv')

也可以稍微曲折点:

import csv
import pandas as pd
with open('E:/iris.csv') as csvfile:
 reader = csv.DictReader(csvfile, fieldnames=None) # fieldnames默认为None,如果所读csv文件没有表头,则需要指定
 list_1 = [e for e in reader] # 每行数据作为一个dict存入链表中
csvfile.close()
dfrme = pd.DataFrame.from_records(list_1)

从zip文件中读取指定csv文件为DataFrame

dst.zip文件中包含有dst.csv和其它文件,现在在不解压缩的情况下直接读取dst.csv文件为DataFrame.

import pandas as pd
import zipfile
z_file = zipfile.ZipFile('E:/dst.zip')
dframe = pd.read_csv(z_file.open('dst.csv'))
z_file.close()
print dframe

DataFrame写入csv文件

dfrme.to_csv('E:/dst.csv', index=False) # 不要每行的编号

读取txt文件为DataFrame

import pandas as pd
# `path`为文件路径或文件句柄,`header`文件第一行是否是表头,`delimiter`每个字段的分隔符,`dtype`数据读入后的存储类型。
frame = pd.read_table(path, header=None, index_col=False, delimiter='\t', dtype=str)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python访问类中docstring注释的实现方法
May 04 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
Python科学计算之NumPy入门教程
Jan 15 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
python 显示数组全部元素的方法
Apr 19 Python
10款最好的Python开发编辑器
Jul 03 Python
python networkx 根据图的权重画图实现
Jul 10 Python
python的slice notation的特殊用法详解
Dec 27 Python
python3中sys.argv的实例用法
Apr 24 Python
python3中编码获取网页的实例方法
Nov 16 Python
python爬取某网站原图作为壁纸
Jun 02 Python
浅谈用VSCode写python的正确姿势
Dec 16 #Python
numpy中索引和切片详解
Dec 15 #Python
Python实现简单网页图片抓取完整代码实例
Dec 15 #Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 #Python
神经网络python源码分享
Dec 15 #Python
神经网络理论基础及Python实现详解
Dec 15 #Python
浅谈机器学习需要的了解的十大算法
Dec 15 #Python
You might like
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
巧用canvas
2017/01/21 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
详解Vue路由自动注入实践
2019/04/17 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
python Django框架实现自定义表单提交
2016/03/25 Python
Python深入06——python的内存管理详解
2016/12/07 Python
django中send_mail功能实现详解
2018/02/06 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
Python实现分段线性插值
2018/12/17 Python
pygame实现成语填空游戏
2019/10/29 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
护士节活动总结
2014/08/29 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
2014年法务工作总结
2014/12/11 职场文书
初中毕业生自我评价
2015/03/02 职场文书
学校捐款活动总结
2015/05/09 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript
Python机器学习之逻辑回归
2021/05/11 Python