python操作Excel读写--使用xlrd

这里介绍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=1
print("请输入行号(1-"+str(nrows)+"):")
iRow=int(input())-1
for iCol in range(ncols):
    print(df.iloc[iRow,iCol])

print("====================显示某一列=======================")
#iCol=1
print("请输入列号(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增加了动态输入行号和列号,显示相应行列的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值