• 【转】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("
    逐行逐列显示:")
    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

  • 相关阅读:
    flush()方法
    多对一关联映射(manytoone)
    Hibernate配置数据库解决插入乱码问题
    lazy
    一对多关联映射(单向)
    属性类的映射
    多对多关联(双向)
    多对多关联映射(单向)
    多态查询
    Visual C# 2008+SQL Server 2005 数据库与网络开发11.2.2 LINQ的基本查询操作
  • 原文地址:https://www.cnblogs.com/shun7man/p/14338267.html
Copyright © 2020-2023  润新知