zoukankan      html  css  js  c++  java
  • pandas读取Excel

    pandas读取Excel

    方法一:通过默认读取第一个表单

    print("
    方法一:")
    xls_data=pd.read_excel('ceshi.xlsx',index_col='序列') #index_col 分行编号
    #这个会直接默认读取到这个Excel的第一个表单
    print(xls_data.head())    #默认读取前5行的数据
    print("输出:
    {0}".format(xls_data.head()))   #格式化输出
    

    方法二:通过指定表单名的方式来读取

    print("
    方法二:")
    df=pd.read_excel('ceshi.xlsx',sheet_name='Sheet2')
    data=df.head() #默认读取前5行的数据
    print("获取到所有的值:
    {0}".format(data))#格式化输出
    

    方法三:通过表单索引来指定要访问的表单,0表示第一个表单

    • 也可以采用表单名和索引的双重方式来定位表单

    • 也可以同时定位多个表单,方式都罗列如下所示

      print("
      方法三:")
      df=pd.read_excel('ceshi.xlsx',sheet_name=['Sheet1','Sheet2'])
      #可以通过表单名同时指定多个--不推荐使用,效果不好
      
      df=pd.read_excel('ceshi.xlsx',sheet_name=['Sheet2',0])
      #可以混合的方式来指定--不推荐使用,效果不好
      
      df=pd.read_excel('ceshi.xlsx',sheet_name=1)
      #可以通过表单索引来指定读取的表单--列表形式
      
      df=pd.read_excel('ceshi.xlsx',sheet_name=[0,1])
      #可以通过索引 同时指定多个--不推荐使用,效果不好
      

    读取数据

    data=df.values #获取所有的数据,注意这里不能用head()方法哦~
    print("获取到所有的值:
    {0}".format(data))#格式化输出
    # 以上读取的数据是一个二维矩阵,不利于处理自动化测试,
    

    pandas操作Excel的行列

    print("
    pandas操作Excel的行列")
    # 1:读取指定的单行,数据会存在列表里面
    df=pd.read_excel('ceshi.xlsx')
    data1=df.loc[0].values #0表示第一行 这里读取数据并不包含表头,要注意哦!
    print("读取指定的单行数据:
    {0}".format(data1))
    
    print("
    2:读取指定的多行,数据会存在嵌套的列表里面:")
    # 2:读取指定的多行,数据会存在嵌套的列表里面:
    df=pd.read_excel('ceshi.xlsx')
    data2=df.loc[[1,2]].values
    print("读取指定的多行数据:
    {0}".format(data2))
    
    print("
    3:读取指定的行列")
    # 3:读取指定的行列:
    df=pd.read_excel('ceshi.xlsx')
    data3=df.iloc[1,2]
    print("读取指定行列的数据:
    {0}".format(data3)) #dandelion-alipaymobile
    
    # 4:读取指定的多行多列值:
    print("
    4:读取指定的多行多列值:")
    df=pd.read_excel('ceshi.xlsx',sheet_name='Sheet2')
    data4=df.loc[[1,2],['姓名','年龄','性别']]
    print("读取多行多列的数据:
    {0}".format(data4))
    # 姓名 年龄 性别
    # 1 sun 18 女
    # 2 zhao 19 男
    
    # 5:获取所有行的指定列
    print("
    5:获取所有行的指定列")
    df=pd.read_excel('ceshi.xlsx',sheet_name='Sheet2')
    data5=df.loc[:,['姓名','年龄','性别']].values #得到的是嵌套列表
    data6=df.loc[:,['姓名','年龄','性别']] #得到二维矩阵
    
    print("获取所有行的指定列的数据:
    {0}".format(data5)) #得到的是嵌套列表
    print("获取所有行的指定列的数据:
    {0}".format(data6)) #得到二维矩阵
    
    # 6:获取行号并打印输出
    print("
    6:获取行号并打印输出")
    df=pd.read_excel('ceshi.xlsx',sheet_name='Sheet2')
    print("输出行号列表:",df.index.values)
    # 输出行号列表: [0 1 2 3 4 5 6]
    
    # 7:获取列名并打印输出
    print("
    7:获取列名并打印输出")
    df=pd.read_excel('ceshi.xlsx',sheet_name='Sheet2')
    print("输出标题:",df.columns.values)
    # 输出标题: ['姓名' '年龄' '性别' '出生日期']
    
    # 8:随机获取几行数的值:
    print("
    8:获取指定行数的值:")
    df=pd.read_excel('ceshi.xlsx',sheet_name='Sheet2')
    print("输出值:
    ",df.sample(3).values) #随机抽取3行查看,这个方法类似于head()方法以及df.values方法
    # [['liu' 23 '女' '1995-05']
    # ['wang' 17 '男' '1992-11']
    # ['li' 20 '男' '1992-09']]
    
    # 9:获取指定列的值:
    print("
    9:获取指定列的值:")
    df=pd.read_excel('ceshi.xlsx',sheet_name='Sheet2')
    print("输出值:
    ",df['姓名'].values)
    
    
    

    pandas处理Excel数据成为字典

    print("
    pandas处理Excel数据成为字典")
    df=pd.read_excel('ceshi.xlsx',sheet_name="Sheet2")
    test_data=[]
    for i in df.index.values: #获取行号的索引,并对其进行遍历:
        row_data=df.loc[i,['姓名','年龄','性别','出生日期']].to_dict()  #根据i来获取每一行指定的数据 并利用to_dict转成字典
        test_data.append(row_data)
        print(test_data)
        
    # [{'姓名': 'wang', '年龄': 17, '性别': '男', '出生日期': '1992-11'}, {'姓名': 'sun', '年龄': 18, '性别': '女', '出生日期': '1992-12'}, {'姓名': 'zhao', '年龄': 19, '性别': '男', '出生日期': '1993-01'}, {'姓名': 'zhang', '年龄': 22, '性别': '女', '出生日期': '1994-05'}, {'姓名': 'zhou', '年龄': 16, '性别': '女', '出生日期': '1992-07'}, {'姓名': 'liu', '年龄': 23, '性别': '女', '出生日期': '1995-05'}, {'姓名': 'li', '年龄': 20, '性别': '男', '出生日期': '1992-09'}]
    
  • 相关阅读:
    数据库三大范式
    idea连接sqlite
    Javascript中==和===的区别
    手机商城项目(修饰技术)
    FastJSON、Gson、Jackson(简单了解使用)
    SiteMesh配置下载使用(简单介绍)
    html5中event获取data和class
    jsp的4个作用域区别( pageScope、requestScope、sessionScope、applicationScope)
    <jsp:include>和<%@include file=""%>的区别(简单了解)
    Check-Point-Security-Gateway-BYOL-R77.30-041.161
  • 原文地址:https://www.cnblogs.com/x1you/p/11993756.html
Copyright © 2011-2022 走看看