使用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操作列表的常用方法分享
Feb 13 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
Python的argparse库使用详解
Oct 09 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
python 实现二维列表转置
Dec 02 Python
python 实现屏幕录制示例
Dec 23 Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 20 Python
python链表类中获取元素实例方法
Feb 23 Python
Python数据分析之绘图和可视化详解
Jun 02 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语法(5)
2006/10/09 PHP
简单的页面缓冲技术
2006/10/09 PHP
PHP使用递归生成文章树
2015/04/21 PHP
关于php中一些字符串总结
2016/05/05 PHP
微信支付开发订单查询实例
2016/07/12 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
修复 Django migration 时遇到的问题解决
2018/06/14 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
越南综合购物网站:Lazada越南
2019/06/10 全球购物
在C#中如何实现多态
2014/07/02 面试题
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书