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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
python使用any判断一个对象是否为空的方法
Nov 19 Python
Python中处理字符串之islower()方法的使用简介
May 19 Python
Python中isnumeric()方法的使用简介
May 19 Python
python中的编码知识整理汇总
Jan 26 Python
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
Python如何判断数独是否合法
Sep 08 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
使用python将多个excel文件合并到同一个文件的方法
Jul 09 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
Python基于pyecharts实现关联图绘制
Mar 27 Python
Python paramiko使用方法代码汇总
Nov 20 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
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
JavaScript 面向对象之命名空间
2010/05/04 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
python装饰器使用方法实例
2013/11/21 Python
Python数据结构之Array用法实例
2014/10/09 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
python logging通过json文件配置的步骤
2020/04/27 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
QA工程师岗位职责
2013/11/20 职场文书
教研处工作方案
2014/05/26 职场文书
团队激励口号
2014/06/06 职场文书
金榜题名主持词
2015/07/02 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
记者节感言
2015/08/03 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang