使用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 isinstance判断对象类型
Sep 06 Python
Python中的rfind()方法使用详解
May 19 Python
Python中的推导式使用详解
Jun 03 Python
Python使用当前时间、随机数产生一个唯一数字的方法
Sep 18 Python
PyCharm在win10的64位系统安装实例
Nov 26 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 Python
Python搭建Spark分布式集群环境
Jul 05 Python
python类中super() 的使用解析
Dec 19 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
基于python实现把json数据转换成Excel表格
May 07 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.NET的入门教程
2006/10/09 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
js获取视频时长代码
2014/04/10 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
js读写json文件实例代码
2014/10/21 Javascript
JavaScript中的逻辑判断符&&、||与!介绍
2014/12/31 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
python连接MySQL数据库实例分析
2015/05/12 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
python 进程池pool使用详解
2020/10/15 Python
遗嘱继承权公证书
2015/01/26 职场文书
人力资源部岗位职责
2015/02/11 职场文书
工程部岗位职责范本
2015/04/11 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
Python Matplotlib库实现画局部图
2021/11/17 Python