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参数和作用域的使用
Nov 01 Python
python实现多线程采集的2个代码例子
Jul 07 Python
python3设计模式之简单工厂模式
Oct 17 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
python tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
Django开发的简易留言板案例详解
Dec 04 Python
在Pycharm terminal中字体大小设置的方法
Jan 16 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 Python
python之基数排序的实现
Jul 26 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
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
浅析SVN常见问题及解决方法
2013/06/21 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
5 cool javascript apps
2007/03/24 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
数控技术应届生求职信
2013/11/13 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
一份创业计划书范文
2014/02/08 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL