读取 excel 表格中数据
随着近几天和几位同事跑了几个项目,受益最多的就是在关于读取 excel 表格中数据。所以分享一下自己的学习感受,若发现有问题,还请告知,好及时改正。
-
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])
来读取表格的行数,接下来就要结合到下面我要说的这个函数
-
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() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。