使用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编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
python的numpy模块安装不成功简单解决方法总结
Dec 23 Python
python3.5基于TCP实现文件传输
Mar 20 Python
10个Python小技巧你值得拥有
Sep 29 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 Python
详解python itertools功能
Feb 07 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
详解python polyscope库的安装和例程
Nov 13 Python
基于Python实现流星雨效果的绘制
Mar 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.ini 中文版
2006/10/28 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
设定php简写功能的方法
2019/11/28 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
Python3 修改默认环境的方法
2019/02/16 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
python如何将多个PDF进行合并
2019/08/13 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
高中生学期学习自我评价
2014/02/24 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书