Python语言之从csv, xls文件中提取数据
小标 2018-07-17 来源 : 阅读 1086 评论 0

摘要:本文主要向大家介绍了Python语言之从csv, xls文件中提取数据,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言之从csv, xls文件中提取数据,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

这个一个美国棒球比赛的统计数据
解压文件夹,我们选取AwardsManagers.csv来练习

 

#-*- coding:utf-8 -*-import csv

DIR = 'data/'

fname = 'AwardsManagers.csv'

fpath = DIR+fname

## 用 with open() as filename 的结构非常优美, 而且不需要写代码来关文件

## 省去了fileobj.close(), 省去写try-finally的麻烦来出来exception

with open(fpath, 'rb') as csvfile:

    ## delimiter是csv文件每行中数据间隔开的符号,常用是comma逗号,

    ## quotechar之间包括特殊字符

    mreader = csv.reader(csvfile, delimiter=',', quotechar='|')

 

    ## 读出每一行都是一个list

    first_row = mreader.next()

    print first_row

    print type(first_row)

    ## 目前的行数

    print mreader.line_num

    for row in mreader:  

        print ', '.join(row)

## 另外一个读取数据的方法是用DictReader

names = ['playerID','awardID','yearID','lgID','tie','notes']

with open(fpath) as csvfile:

    ## fieldnames指明了csv文件的列名称   

    reader = csv.DictReader(csvfile, fieldnames=names,

        delimiter=',', quotechar='|')     

    for row in reader:   

        ## 每一行都是一个dict对象

        print(row[names[0]], row[names[1], row[names[2])

 

从专业机构中获取的数据也常常是XLS文件,用python提取XLS文件中的函数是xlrd

在xlrd中最重要的函数是:
xlrd.open_workbook
workbook.sheet_by_name
workbook.sheet_by_index
sheet.cell(row_index, col_index)
cell.value
sheet.col_values(col_index, start_row_index, end_row_index)
sheet.row_values(row_index, start_col_index, end_col_index)
sheet.col_slice(col_index, start_row_index, end_row_index)
sheet.row_slice(row_index, start_col_index, end_col_index)
点击下载数据源文件//www.abs.gov.au/AUSSTATS/subscriber.nsf/log?openagent&33010do001_2009.xls&3301.0&Data%20Cubes&861A1F351DF2D978CA2577CF000DF18E&0&2009&03.11.2010&Latest
文件是关于澳大利亚人口出生情况的统计数据

 

#-*- coding:utf-8 -*-import xlrd

 

DIR = 'C:/Users/Lucas/Downloads/'

fname = '33010do001_2009.xls'

# 首先建立workbook

mworkbook = xlrd.open_workbook(DIR+fname)

# 打印出所有sheetnames

sheet_names = mworkbook.sheet_names()print('Sheet Names', sheet_names)

# 选取第二个sheet

msheet = mworkbook.sheet_by_name(sheet_names[1])

# 或者通过index得到sheet

nsheet = mworkbook.sheet_by_index(1)print ('Sheet name: %s' % nsheet.name)

# Pull the first row by index

row = msheet.row(0)  

# Pull the first row by index

row = msheet.row(4) # Print 1st row values and typesfor cell in row:

    print cell.value

# Print all values, iterating through rows and columns

#num_cols = msheet.ncols   # Number of columns

num_rows = msheet.nrows   # Number of rowsfor row_idx in range(0, num_rows):    # Iterate through rows

    row_values = []

    for col_idx in range(0, num_cols):  # Iterate through columns        row_values.append([msheet.cell(row_idx, col_idx).value])

 

    ## 输出每行数据

    print row_values

## 用col_slice得到某一列的数据

col_cells = msheet.col_slice(2, 4, num_rows)for cell in col_cells:

    print("-"*6)

    print cell.value

        ## 用col_valeus得到某一列的数据

col_values = msheet.col_values(2, 4, num_rows)print col_values        

以上就介绍了Python的相关知识,希望对Python有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程