这里介绍Python中使用Pandas读取Excel的方法
一、软件环境:
OS:Win7 64位
Python 3.7
二、文件准备
1、项目结构:

2、在当前实验文件夹下建立一个Source文件夹,里面放待读取的Excel文件
3、待读取的Excel文件名:Book1.xlsx,Sheet Name:Sheet1
内容示例:

三、代码参考
代码中已进行了注释说明,这里就不重复说明了。
1、第一行作为列名处理,数据的第1行实际是从Excel的第2行开始,数据的最大行数等于Excel的最大行数减1
#
! -*- coding utf-8 -*-
#
! @Time :2019/3/20 22:00
#
! Author :Frank Zhang
#
! @File :Pandas_ReadExcelV1.0.py
#
! Python Version 3.7
"""
模块功能:读取当前文件夹下的Source里的Excel文件,显示其相关信息
说明:默认把Excel的第一行当做列名,数据的第1行是从Excel的第2行开始
这里获取的最大行是Excel的最大行减去作为列名的第1行
"""
import
pandas as pd
sExcelFile="./Source/Book1.xlsx"
df = pd.read_excel(sExcelFile,sheet_name=‘Sheet1‘)
#获取最大行,最大列
nrows=df.shape[0]
ncols=df.columns.size
print("=========================================================================")
print(‘Max Rows:‘+str(nrows))
print(‘Max Columns‘+str(ncols))
#显示列名,以列表形式显示print(df.columns)
#显示列名,并显示列名的序号for iCol in range(ncols):
print(str(iCol)+‘:‘+df.columns[iCol])
#列出特定行列,单元格的值print(df.iloc[0,0])
print(df.iloc[0,1])
print("=========================================================================")
#查看某列内容
#sColumnName=‘fd1‘print(df[sColumnName])
#查看第3列的内容,列的序号从0开始
sColumnName=df.columns[2]
print(df[sColumnName])
#查看某行的内容
iRow=1
for iCol in range(ncols):
print(df.iloc[iRow,iCol])
#遍历逐行逐列for iRow in range(nrows):
for iCol in range(ncols):
print(df.iloc[iRow,iCol])
print(‘=====================================End==================================‘)
2、不把第1行作为列名,读取Excel那就没有列名,需增加参数:header=None
代码如下:
#
! -*- coding utf-8 -*-
#
! @Time :2019/3/20 9:44
#
! Author :Frank Zhang
#
! @File :Pandas_ReadExcelV1.1.py
#
! Python Version 3.7
"""
模块功能:读取当前文件夹下的Source里的Excel文件,显示其相关信息
说明:数据从第1行开始,不设列名,不把第1行作为列名
这里获取的最大行就是是Excel的最大行
"""
import
pandas as pd
sExcelFile="./Source/Book1.xlsx"
df = pd.read_excel(sExcelFile,sheet_name=‘Sheet1‘,header=None)
#获取最大行和最大列数
nrows=df.shape[0]
ncols=df.columns.size
print("=====================================================")
print(‘Max Rows: ‘+str(nrows))
print(‘Max Columns: ‘+str(ncols))
#显示某特定单元格的值print(df.iloc[0,0])
print(df.iloc[0,1])
print("=====================================================")
#查看某行的内容print("====================显示某一行=======================")
#iRow=1print("请输入行号(1-"+str(nrows)+"):")
iRow=int(input())-1
for iCol in range(ncols):
print(df.iloc[iRow,iCol])
print("====================显示某一列=======================")
#iCol=1print("请输入列号(1-"+str(ncols)+"):")
iCol=int(input())-1
if iCol>=0 and iCol<=ncols:
for iRow in range(nrows):
print(df.iloc[iRow,iCol])
else:
print(‘输入了错误的列号‘)
#遍历逐行逐列print("n逐行逐列显示:")
for iRow in range(nrows):
for iCol in range(ncols):
print(df.iloc[iRow,iCol])
print(‘=========================End=========================‘)
示例2增加了动态输入行号和列号,显示相应行列的内容。
这两个示例都是可以运行的。
原文:https://www.cnblogs.com/SH170706/p/10568908.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!