使用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 socket C/S结构的聊天室应用实现
Nov 30 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
pyenv命令管理多个Python版本
Mar 26 Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 Python
python编写暴力破解zip文档程序的实例讲解
Apr 24 Python
Python3连接SQLServer、Oracle、MySql的方法
Jun 28 Python
python文件拆分与重组实例
Dec 10 Python
对Python3 * 和 ** 运算符详解
Feb 16 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
详解Python list和numpy array的存储和读取方法
Nov 06 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 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生成txt文件标题及内容的方法
2014/01/16 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
简述Python中的面向对象编程的概念
2015/04/27 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
Python实现爬取并分析电商评论
2020/06/19 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
大专生的学习自我评价
2013/12/04 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
单位活动策划方案
2014/08/17 职场文书
运动员入场前导词
2015/07/20 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL