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中使用glob和rmtree删除目录子目录及所有文件的例子
Nov 21 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
python文字转语音的实例代码分析
Nov 12 Python
Python解析json代码实例解析
Nov 25 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
使用pth文件添加Python环境变量方式
May 26 Python
Python的flask接收前台的ajax的post数据和get数据的方法
Apr 12 Python
python操作xlsx格式文件并读取
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
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
JS前端笔试题分析
2016/12/19 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
python k-近邻算法实例分享
2014/06/11 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
python使用Matplotlib画饼图
2018/09/25 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Scrapy框架使用的基本知识
2018/10/21 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
详解Python 切片语法
2019/06/10 Python
python实现画出e指数函数的图像
2019/11/21 Python
pytorch标签转onehot形式实例
2020/01/02 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
Python 远程开关机的方法
2020/11/18 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
综合测评自我鉴定
2013/10/08 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
修理厂厂长岗位职责
2014/01/30 职场文书
创业计划书模版
2014/02/05 职场文书
情人节寄语大全
2014/04/11 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL