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

    In [7]:

    import pandas as pd
    filname = 'ch02数据导入\student.xlsx'
    data = pd.read_excel(filname)
    data
    
    Out[7]:
     
     姓名年龄爱好学号学费
    0 张三 20 打球 12 5000
    1 李四 21 游泳 13 6000
    2 周五 23 唱歌 14 7000
    3 赵六 25 下棋 15 500
    4 王七 20 跑步 16 60
    5 朱八 28 旅游 17 300
    In [9]:
    # 打印前3行数据
    data.head(3)
    
    Out[9]:
     
     姓名年龄爱好学号学费
    0 张三 20 打球 12 5000
    1 李四 21 游泳 13 6000
    2 周五 23 唱歌 14 7000
    In [10]:
    # 打印[1-3)行数据
    data[1:3]
    
    Out[10]:
     
     姓名年龄爱好学号学费
    1 李四 21 游泳 13 6000
    2 周五 23 唱歌 14 7000
    In [11]:
    # 根据列名,打印某一列数据
    data['姓名']
    
    Out[11]:
    0    张三
    1    李四
    2    周五
    3    赵六
    4    王七
    5    朱八
    Name: 姓名, dtype: object
    In [12]:
    # 查看所有字段
    field = data.columns.tolist()
    field
    
    Out[12]:
    ['姓名', '年龄', '爱好', '学号', '学费']
    In [13]:
    # 只显示第四行
    data.loc[4]
    
    Out[13]:
    姓名    王七
    年龄    20
    爱好    跑步
    学号    16
    学费    60
    Name: 4, dtype: object
    In [15]:
    # 打印多个列数据,需要双层[[]]
    data[["姓名", "年龄"]]
    
    Out[15]:
     
     姓名年龄
    0 张三 20
    1 李四 21
    2 周五 23
    3 赵六 25
    4 王七 20
    5 朱八 28
    In [16]:
    # 查看基础数据
    # mean = 均值
    # std = 方差
    data.describe()  # 只针对数值型
    
    Out[16]:
     
     年龄学号学费
    count 6.000000 6.000000 6.000000
    mean 22.833333 14.500000 3143.333333
    std 3.188521 1.870829 3195.632436
    min 20.000000 12.000000 60.000000
    25% 20.250000 13.250000 350.000000
    50% 22.000000 14.500000 2750.000000
    75% 24.500000 15.750000 5750.000000
    max 28.000000 17.000000 7000.000000
    In [17]:
    data2 = pd.read_excel(filname,header=None)
    data2
    
    Out[17]:
     
     01234
    0 姓名 年龄 爱好 学号 学费
    1 张三 20 打球 12 5000
    2 李四 21 游泳 13 6000
    3 周五 23 唱歌 14 7000
    4 赵六 25 下棋 15 500
    5 王七 20 跑步 16 60
    6 朱八 28 旅游 17 300
    In [18]:
    data2.values
    
    Out[18]:
    array([['姓名', '年龄', '爱好', '学号', '学费'],
           ['张三', 20, '打球', 12, 5000],
           ['李四', 21, '游泳', 13, 6000],
           ['周五', 23, '唱歌', 14, 7000],
           ['赵六', 25, '下棋', 15, 500],
           ['王七', 20, '跑步', 16, 60],
           ['朱八', 28, '旅游', 17, 300]], dtype=object)
    In [21]:
    data.values
    
    Out[21]:
    array([['张三', 20, '打球', 12, 5000],
           ['李四', 21, '游泳', 13, 6000],
           ['周五', 23, '唱歌', 14, 7000],
           ['赵六', 25, '下棋', 15, 500],
           ['王七', 20, '跑步', 16, 60],
           ['朱八', 28, '旅游', 17, 300]], dtype=object)
    In [22]:
    data.index
    
    Out[22]:
    RangeIndex(start=0, stop=6, step=1)
     

    pandas参数说明

    pandas.read_excel(io, sheet_name=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=None, usecols=None, parse_dates=False, date_parser=None, na_values=None, thousands=None, convert_float=True, converters=None, dtype=None, true_values=None, false_values=None, engine=None, squeeze=False, **kwds)

     

    1.io :excel 路径;

    In [24]:
    data3 = pd.read_excel(io=filname)
    data3
    
    Out[24]:
     
     姓名年龄爱好学号学费
    0 张三 20 打球 12 5000
    1 李四 21 游泳 13 6000
    2 周五 23 唱歌 14 7000
    3 赵六 25 下棋 15 500
    4 王七 20 跑步 16 60
    5 朱八 28 旅游 17 300
     

    2.sheetname:默认是sheetname为0,返回多表使用sheetname=[0,1],若sheetname=None是返回全表 。注意:int/string返回的是dataframe,而none和list返回的是dict of dataframe。

    In [32]:
    data3 = pd.read_excel(filname,sheet_name=[0,1])
    data3
    
    Out[32]:
    OrderedDict([(0,    姓名  年龄  爱好  学号    学费
                  0  张三  20  打球  12  5000
                  1  李四  21  游泳  13  6000
                  2  周五  23  唱歌  14  7000
                  3  赵六  25  下棋  15   500
                  4  王七  20  跑步  16    60
                  5  朱八  28  旅游  17   300), (1,   动物    植物
                  0    小猫  花
                  1    小狗  树)])
    In [37]:
    data3 = pd.read_excel(filname,sheet_name=0)
    data3
    
    Out[37]:
     
     姓名年龄爱好学号学费
    0 张三 20 打球 12 5000
    1 李四 21 游泳 13 6000
    2 周五 23 唱歌 14 7000
    3 赵六 25 下棋 15 500
    4 王七 20 跑步 16 60
    5 朱八 28 旅游 17 300
    In [38]:
    data3 = pd.read_excel(filname,sheet_name=1)
    data3
    
    Out[38]:
     
     动物植物
    0 小猫
    1 小狗
     

    3.header :指定作为列名的行,默认0,即取第一行,数据为列名行以下的数据;若数据不含列名,则设定 header = None;

    In [39]:
    data3 = pd.read_excel(filname,sheet_name=0,header=None)
    data3
    
    Out[39]:
     
     01234
    0 姓名 年龄 爱好 学号 学费
    1 张三 20 打球 12 5000
    2 李四 21 游泳 13 6000
    3 周五 23 唱歌 14 7000
    4 赵六 25 下棋 15 500
    5 王七 20 跑步 16 60
    6 朱八 28 旅游 17 300
    In [40]:
    data3 = pd.read_excel(filname,sheet_name=0,header=2)
    data3
    
    Out[40]:
     
     李四21游泳136000
    0 周五 23 唱歌 14 7000
    1 赵六 25 下棋 15 500
    2 王七 20 跑步 16 60
    3 朱八 28 旅游 17 300
     

    4.skiprows:省略指定行数的数据

    In [42]:
    data3 = pd.read_excel(filname, sheet_name=0, skiprows=1)
    data3
    
    Out[42]:
     
     张三20打球125000
    0 李四 21 游泳 13 6000
    1 周五 23 唱歌 14 7000
    2 赵六 25 下棋 15 500
    3 王七 20 跑步 16 60
    4 朱八 28 旅游 17 300
     

    5.skipfooter:省略从尾部数的行数据

    In [44]:
    data3 = pd.read_excel(filname, sheet_name=0, skipfooter=1)
    data3
    
    Out[44]:
     
     姓名年龄爱好学号学费
    0 张三 20 打球 12 5000
    1 李四 21 游泳 13 6000
    2 周五 23 唱歌 14 7000
    3 赵六 25 下棋 15 500
    4 王七 20 跑步 16 60
     

    6.index_col :指定列为索引列,也可以使用 u’string’

    In [46]:
    data3 = pd.read_excel(filname, sheet_name=0, index_col=1)
    data3
    
    Out[46]:
     
     姓名爱好学号学费
    年龄    
    20 张三 打球 12 5000
    21 李四 游泳 13 6000
    23 周五 唱歌 14 7000
    25 赵六 下棋 15 500
    20 王七 跑步 16 60
    28 朱八 旅游 17 300
     

    7.names:指定列的名字,传入一个list数据

    In [49]:
    data3 = pd.read_excel(filname, sheet_name=0,
                          names=['a', 'b', 'c', 'd', 'e'])
    data3
    
    Out[49]:
     
     abcde
    0 张三 20 打球 12 5000
    1 李四 21 游泳 13 6000
    2 周五 23 唱歌 14 7000
    3 赵六 25 下棋 15 500
    4 王七 20 跑步 16 60
    5 朱八 28 旅游 17 300
     
     
  • 相关阅读:
    Python-time和datetime模块
    Python-hashlib模块
    Python-利用flask模块创建web接口
    Python-操作Excel
    2
    1
    8
    7
    HDFS元数据管理实战篇
    使用HttpFS网关从防火墙后面访问HDFS
  • 原文地址:https://www.cnblogs.com/xinmomoyan/p/10875792.html
Copyright © 2011-2022 走看看