使用python获取csv文本的某行或某列数据的实例


Posted in Python onApril 03, 2018

站长用Python写了一个可以提取csv任一列的代码,欢迎使用。Github链接

csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格:

使用python获取csv文本的某行或某列数据的实例

就可以存储为csv文件,文件内容是:

No.,Name,Age,Score
1,Apple,12,98
2,Ben,13,97
3,Celia,14,96
4,Dave,15,95

假设上述csv文件保存为"A.csv",如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Python自带的csv模块,有两种方法可以实现:

第一种方法使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:

import csv
with open('A.csv','rb') as csvfile:
 reader = csv.reader(csvfile)
 rows= [row for row in reader]
print rows

得到:

[['No.', 'Name', 'Age', 'Score'],
['1', 'Apple', '12', '98'],
['2', 'Ben', '13', '97'],
['3', 'Celia', '14', '96'],
['4', 'Dave', '15', '95']]

要提取其中某一列,可以用下面的代码:

import csv
with open('A.csv','rb') as csvfile:
 reader = csv.reader(csvfile)
 column = [row[2] for row in reader]
print column

得到:

['Age', '12', '13', '14', '15']

注意从csv读出的都是str类型。这种方法要事先知道列的序号,比如Age在第2列,而不能根据'Age'这个标题查询。这时可以采用第二种方法:

第二种方法是使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:

import csv
with open('A.csv','rb') as csvfile:
 reader = csv.DictReader(csvfile)
 column = [row for row in reader]
print column

得到:

[{'Age': '12', 'No.': '1', 'Score': '98', 'Name': 'Apple'},
{'Age': '13', 'No.': '2', 'Score': '97', 'Name': 'Ben'},
{'Age': '14', 'No.': '3', 'Score': '96', 'Name': 'Celia'},
{'Age': '15', 'No.': '4', 'Score': '95', 'Name': 'Dave'}]

如果我们想用DictReader读取csv的某一列,就可以用列的标题查询:

import csv
with open('A.csv','rb') as csvfile:
 reader = csv.DictReader(csvfile)
 column = [row['Age'] for row in reader]
print column

就得到:

['12', '13', '14', '15']

以上这篇使用python获取csv文本的某行或某列数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常见数据结构详解
Jul 24 Python
朴素贝叶斯算法的python实现方法
Nov 18 Python
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 Python
Python爬虫与反爬虫大战
Jul 30 Python
Python通过类的组合模拟街道红绿灯
Sep 16 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 Python
python中实现数组和列表读取一列的方法
Apr 03 #Python
numpy.delete删除一列或多列的方法
Apr 03 #Python
取numpy数组的某几行某几列方法
Apr 03 #Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 #Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 #Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 #Python
windows10下python3.5 pip3安装图文教程
Apr 02 #Python
You might like
PHP新手上路(二)
2006/10/09 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
PHP7.0版本备注
2015/07/23 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
Javascript学习笔记5 类和对象
2010/01/11 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
原生JS实现前端本地文件上传
2018/09/08 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
Vue SPA 首屏优化方案
2021/02/26 Vue.js
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python 输出所有大小写字母的方法
2019/01/02 Python
python设置环境变量的原因和方法
2019/06/24 Python
安装docker-compose的两种最简方法
2019/07/30 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Python基于Faker假数据构造库
2020/11/30 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
C#笔试题集合
2013/06/21 面试题
双十佳事迹材料
2014/01/29 职场文书
房地产营销策划方案
2014/02/08 职场文书
汽车广告策划方案
2014/05/31 职场文书