使用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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
Python输出9*9乘法表的方法
May 25 Python
Python 用Redis简单实现分布式爬虫的方法
Nov 23 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
Python求解任意闭区间的所有素数
Jun 10 Python
Django 路由系统URLconf的使用
Oct 11 Python
对python中类的继承与方法重写介绍
Jan 20 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
Feb 01 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
python递归法解决棋盘分割问题
Jul 17 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
初探PHP5
2006/10/09 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
javascript每日必学之多态
2016/02/23 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
puppeteer库入门初探
2019/01/09 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
python获取网页状态码示例
2014/03/30 Python
对于Python的Django框架部署的一些建议
2015/04/09 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
城建学院毕业生自荐信
2014/01/31 职场文书
公立医院改革实施方案
2014/03/14 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
小学课外活动总结
2014/07/09 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
php png失真的原因及解决办法
2021/11/17 PHP