栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用python读取csv中的特定列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用python读取csv中的特定列

def read_csv(file, columns, type_name="Row"):  try:    row_type = namedtuple(type_name, columns)  except ValueError:    row_type = tuple  rows = iter(csv.reader(file))  header = rows.next()  mapping = [header.index(x) for x in columns]  for row in rows:    row = row_type(*[row[i] for i in mapping])    yield row

例子:

>>> import csv>>> from collections import namedtuple>>> from StringIO import StringIO>>> def read_csv(file, columns, type_name="Row"):...   try:...     row_type = namedtuple(type_name, columns)...   except ValueError:...     row_type = tuple...   rows = iter(csv.reader(file))...   header = rows.next()...   mapping = [header.index(x) for x in columns]...   for row in rows:...     row = row_type(*[row[i] for i in mapping])...     yield row... >>> testdata = """... AAA,bbb,ccc,DDD,eee,FFF,GGG,hhh... 1,2,3,4,50,3,20,4... 2,1,3,5,24,2,23,5... 4,1,3,6,34,1,22,5... 2,1,3,5,24,2,23,5... 2,1,3,5,24,2,23,5... """>>> testfile = StringIO(testdata)>>> for row in read_csv(testfile, "AAA GGG DDD".split()):...   print row... Row(AAA='1', GGG='20', DDD='4')Row(AAA='2', GGG='23', DDD='5')Row(AAA='4', GGG='22', DDD='6')Row(AAA='2', GGG='23', DDD='5')Row(AAA='2', GGG='23', DDD='5')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431606.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号