使用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程序代码片段
Jun 02 Python
Python正则表达式使用经典实例
Jun 21 Python
python让列表倒序输出的实例
Jun 25 Python
flask中过滤器的使用详解
Aug 01 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
Python任务自动化工具tox使用教程
Mar 17 Python
详解Flask前后端分离项目案例
Jul 24 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
Python高并发和多线程有什么关系
Nov 14 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实现简单的语法高亮函数实例分析
2015/04/27 PHP
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
原生js实现分页效果
2020/09/23 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python工程师面试必备25条知识点
2018/01/17 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
Python字典对象实现原理详解
2019/07/01 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Python实现GIF图倒放
2020/07/16 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
高一家长会邀请函
2014/01/12 职场文书
工程项目建议书范文
2014/03/12 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
快速学习Oracle触发器和游标
2021/06/30 Oracle
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技
Golang jwt身份认证
2022/04/20 Golang
使用Python获取字典键对应值的方法
2022/04/26 Python
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS