使用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 相关文章推荐
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
Pycharm设置界面全黑的方法
May 23 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
Django 数据库同步操作技巧详解
Jul 19 Python
Python解压 rar、zip、tar文件的方法
Nov 19 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
基于python实现把json数据转换成Excel表格
May 07 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
详解Anaconda安装tensorflow报错问题解决方法
Nov 01 Python
python中的getter与setter你了解吗
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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
web前端开发也需要日志
2010/12/09 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
公司员工检讨书
2014/02/08 职场文书
经典团队口号
2014/06/06 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
检讨书格式
2015/01/23 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
Python中字符串对象语法分享
2022/02/24 Python
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript