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实现服务器中只重载被修改的进程的方法
Apr 30 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
python代码编写计算器小程序
Mar 30 Python
Python Django Cookie 简单用法解析
Aug 13 Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
Python使用type动态创建类操作示例
Feb 29 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
python如何编写win程序
Jun 08 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 Python
一行代码python实现文件共享服务器
Apr 22 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
php中文字母数字验证码实现代码
2008/04/25 PHP
php 数学运算验证码实现代码
2009/10/11 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
javascript 获取表单file全路径
2009/12/31 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python字符遍历的艺术
2008/09/06 Python
python的Template使用指南
2014/09/11 Python
Python中的exec、eval使用实例
2014/09/23 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
办公室前台的岗位职责
2013/12/20 职场文书
法律专业实习鉴定
2013/12/22 职场文书
银行开业庆典方案
2014/02/06 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
实习工作表现评语
2014/12/31 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
婚宴父母致辞
2015/07/27 职场文书
大学体育课感想
2015/08/10 职场文书