python 操作Excel(2) 读取Excel(利用 Pandas 和 xlrd )

pandas简介

pandas 是基于NumPy的一种工具,支持xlsxlsx文件格式。该工具是为了解决数据分析任务而创建的。

Series,在Pandas库中表示一维数组,与Python基本的数据结构List相近,可以保存不同数据类型。

DataFrame,是Pandas库中的一种数据结构,它类似excel,是一种二维表

 

读取excel文件,read_excel ( io) 

# coding:utf-8
# 将实验 excel 文件放入 python 执行文件的顶层目录下,即可实现读取Excel功能。

import pandas as pd

fileName = input("请输入excel文件\n") # 获取文件路径
df = pd.read_excel(fileName) # df 即 DataFrame 结构
print(df)

一些重要的pandas.read_excel参数如下:

参数     描述         
io一个字符串,描述给定Excel文件的路径。
sheet_name您要导入的数据的Excel工作表名称或工作表编号。 工作表编号可以是整数,其中0是第一张工作表,1是第二张工作表,依此类推。如果给出了工作表名称/编号列表,则输出将是DataFrames的字典。 默认值为读取所有工作表并输出DataFrames字典(key:value)。
header用于列标签列表的行号。 默认值为0,表示假定第一行包含列标签。 如果数据没有一行列标签,则不使用。
names列名的单独Python列表输入。 默认情况下此选项为None。 此选项等效于为输出DataFrame的column属性分配列名称列表。
index_col指定应将哪一列用于行索引。 默认选项为None,这意味着所有列都包含在数据中,并且一定范围的数字用作行索引。
usecols整数、整数列表或字符串,用于指定要导入到DataFrame中的列。是。默认是导入所有列。如果给定一个字符串,熊猫使用标准的Excel格式来选择列(例如。“A:C,F,G”将导入列A, B, C,F和G)。
skiprows要在Excel工作表顶部跳过的行数。默认值为0。此选项对于跳过Excel中包含有关下面数据的说明信息的行非常有用。

pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, parse_cols=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None, skip_footer=0, skipfooter=0, convert_float=True, mangle_dupe_cols=True, **kwds) 

示例:读取Sheet1的表头 

# 读取Sheet1表的 表头

import pandas as pd

f_n= input("请输入城市顺序表.xls文件\n")
df = pd.read_excel(f_n,sheet_name='Sheet1') # 基于文件和sheet名,读取其中所有信息
print(df.columns)

利用read_excel ( io , usecols=None ) 获取指定列数据

# coding:utf-8
# 读取默认excel文件的sheet表的 指定列数据

import pandas as pd

filename= input("请输入excel文件\n")
Col=[0,1,4,9] #指定列:1、2、5、10

df = pd.read_excel(filename, usecols=[col[0]],names=None)  # 读取项目名称列,不要列名
df_li = df.values.tolist()
result = []
for s_li in df_li:
    result.append(s_li[0])

print(result) #输出指定列数据

 

xlrd 简介

最常用读取excel的库是 xlrd 。其中 xlrd 仅支持读取excel,而 xlwt 则是仅支持写如excel的库,两者组合出现。

网络上有大量的资源代码,这里不再赘述。

但值得介绍的是,xlwt 仅可写入 Ecxec2007之前的版本,即.xls文件(无法写入xlsx文件)。所以目前一般用xlrd读取,用openpyxl写入。

#coding:utf-8
# '''
# xlrd用于读取excel文件,是最常用的工具
# '''

import xlrd
data = xlrd.open_workbook(filename)
#文件名以及路径,如果路径或者文件名有中文给前面加一个r拜师原生字符。

mySheets = myWorkbook.sheets()                 #获取工作表list。
mySheet = mySheets[0]                          #通过索引顺序获取。
mySheet = myWorkbook.sheet_by_index(0)         #通过索引顺序获取。
mySheet = myWorkbook.sheet_by_name(u'Sheet1')  #通过名称获取。
print(mySheets,mySheet)

#1.对于行的操作

nrows = mySheet.nrows  #获取该sheet中的有效行数
mySheet.row(rowx)  #返回由该行中所有的单元格对象组成的列表
mySheet.row_slice(rowx)  #返回由该列中所有的单元格对象组成的列表
mySheet.row_types(rowx, start_colx=0, end_colx=None)    #返回由该行中所有单元格的数据类型组成的列表
mySheet.row_values(rowx, start_colx=0, end_colx=None)   #返回由该行中所有单元格的数据组成的列表
mySheet.row_len(rowx) #返回该列的有效单元格长度

#2.对于列的操作

ncols = mySheet.ncols   #获取列表的有效列数
mySheet.col(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表
mySheet.col_slice(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表
mySheet.col_types(colx, start_rowx=0, end_rowx=None)    #返回由该列中所有单元格的数据类型组成的列表
mySheet.col_values(colx, start_rowx=0, end_rowx=None)   #返回由该列中所有单元格的数据组成的列表

#3.对于单元格的操作

mySheet.cell(rowx,colx)   #返回单元格对象
mySheet.cell_type(rowx,colx)    #返回单元格中的数据类型
mySheet.cell_value(rowx,colx)   #返回单元格中的数据
mySheet.cell_xf_index(rowx, colx)   # 暂时还没有搞懂

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值