Python 使用Pandas读取Excel的学习笔记

这里介绍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增加了动态输入行号和列号,显示相应行列的内容。

 

这两个示例都是可以运行的。

 

posted on 2019-03-20 23:35  天道酬勤2016  阅读(28211)  评论(0编辑  收藏  举报