读取 excel 表格中数据

随着近几天和几位同事跑了几个项目,受益最多的就是在关于读取 excel 表格中数据。所以分享一下自己的学习感受,若发现有问题,还请告知,好及时改正。

  1. numpy 函数:shape 用法
    shape 函数是 numpy.core.fromnumeric 中的函数,它的功能是读取矩阵的长度,比如 shape[0] 就是读取矩阵第一维度的长度。它的输入参数可以使一个整数表示维度,也可以是一个矩阵。这么说你可能不太理解,我们还是用各种例子来说明他的用法:

    1、一维矩阵[1]返回值为(1L,)
    	>>>shape([1])
            (1L,)
    
    2、二维矩阵,返回两个值
    	>>>shape([1],[2])
    	(2L,1L)
    
    3、一个单独的数字,返回值为空
    	>>>shape(1)
    	()
    
    4、我们还可以将shape作为矩阵的方法来调用,下面先创建了一个单位矩阵e
    	>>>e=eye(3)
    	>>>e
    	array([[1.,0.,0.]
    	       [0.,1.,0.]
    	       [0.,0.,1.]])
    
    5、我们可以快速读取e的形状
    	>>>e.shape
    	(3L,3L)
    
    6、假如我们只想读取e的第一维度长度,使用shape[0]
    	>>>e.shape[0]
    	3L
    

    因而我们在使用 RPA 设计器控件读取 excel 时,可将其返回值传递给一个参数,设为 data_df,再使用 for 循环,如:

    for i in range(data_df.shape[0])
    

    来读取表格的行数,接下来就要结合到下面我要说的这个函数

  2. Pandas 中# loc 和 iloc 函数用法(通过行号来取行数据)
    1. 利用 loc、iloc 提取行数据

    import numpy as np
    import pandas as pd
    #创建一个Dataframe
    data=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD'))
    
    In[1]: data
    Out[1]: 
    	A   B   C   D
    a   0   1   2   3
    b   4   5   6   7
    c   8   9  10  11
    d  12  13  14  15
    
    #取索引为'a'的行
    In[2]: data.loc['a']
    Out[2]:
    A    0
    B    1
    C    2
    D    3
    Name: a, dtype: int32
    
    #取第一行数据,索引为'a'的行就是第一行,所以结果相同
    In[3]: data.iloc[0]
    Out[3]:
    A    0
    B    1
    C    2
    D    3
    Name: a, dtype: int32
    

    2. 利用 loc、iloc 提取列数据

    In[4]:data.loc[:,['A']] #取'A'列所有行,多取几列格式为 data.loc[:,['A','B']]
    Out[4]: 
        A
    a   0
    b   4
    c   8
    d  12
    
    
    In[5]:data.iloc[:,[0]] #取第0列所有行,多取几列格式为 data.iloc[:,[0,1]]
    Out[5]: 
        A
    a   0
    b   4
    c   8
    d  12
    

    3. 利用 loc、iloc 提取指定行、指定列数据

    In[6]:data.loc[['a','b'],['A','B']] #提取index为'a','b',列名为'A','B'中的数据
    Out[6]: 
       A  B
    a  0  1
    b  4  5
    
    In[7]:data.iloc[[0,1],[0,1]] #提取第0、1行,第0、1列中的数据
    Out[7]: 
       A  B
    a  0  1
    b  4  5
    

    4. 利用 loc、iloc 提取所有数据

     In[8]:data.loc[:,:] #取A,B,C,D列的所有行
    Out[8]: 
        A   B   C   D
    a   0   1   2   3
    b   4   5   6   7
    c   8   9  10  11
    d  12  13  14  15
    
    In[9]:data.iloc[:,:] #取第0,1,2,3列的所有行
    Out[9]: 
        A   B   C   D
    a   0   1   2   3
    b   4   5   6   7
    c   8   9  10  11
    d  12  13  14  15
    

    5. 利用 loc 函数,根据某个数据来提取数据所在的行

    In[10]: data.loc[data['A']==0] #提取A列中数字为0所在的行数据
    Out[10]: 
       A  B  C  D
    a  0  1  2  3
    

因而结合上面的例子,在实际操作中,我们可以在用 shape 函数读取 excel 的基础上,结合 iloc 函数进一步提取数据,如:

  a = data_df.iloc[i,1].strip()     #读取第i行的第一列
				    # strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
8 打赏
打赏 3 积分后可见