Python利用pandas處理Excel數據的應用

Python利用pandas處理Excel數據的應用

       最近迷上了高效處理數據的pandas,其實這個是用來作數據分析的,若是你是作大數據分析和測試的,那麼這個是很是的有用的!!可是其實咱們平時在作自動化測試的時候,若是涉及到數據的讀取和存儲,那麼而利用pandas就會很是高效,基本上3行代碼能夠搞定你20行代碼的操做!該教程僅僅限於結合檸檬班的全棧自動化測試課程來說解下pandas在項目中的應用,這僅僅只是冰山一角,但願你們能夠踊躍的去嘗試和探索!html

     1、安裝環境:

複製代碼

1:pandas依賴處理Excel的xlrd模塊,因此咱們須要提早安裝這個,安裝命令是:pip install xlrd

  2:安裝pandas模塊還須要必定的編碼環境,因此咱們本身在安裝的時候,確保你的電腦有這些環境:Net.4 、VC-Compiler以及winsdk_web,若是你們沒有這些軟件~能夠諮詢咱們的輔導員索要相關安裝工具。

  3:步驟1和2 準備好了以後,咱們就能夠開始安裝pandas了,安裝命令是:pip install pandas

一切準備就緒,就能夠開始愉快的玩耍咯!
ps:在這個過程當中,可能會遇到安裝不順利的狀況,萬能的度娘有N種解決方案,你這麼大應該要學着本身解決問題。

複製代碼

 

       2、pandas操做Excel表單python

  數據準備,有一個Excel文件:lemon.xlsx有兩個表單,表單名分別爲:Python 以及student,web

Python的表單數據以下所示:app

 

student的表單數據以下所示:工具

 

       1:在利用pandas模塊進行操做前,能夠先引入這個模塊,以下:學習

import  pandas  as pd

      2:讀取Excel文件的兩種方式:測試

#方法一:默認讀取第一個表單
df=pd.read_excel('lemon.xlsx')#這個會直接默認讀取到這個Excel的第一個表單
data=df.head()#默認讀取前5行的數據
print("獲取到全部的值:\n{0}".format(data))#格式化輸出

獲得的結果是一個二維矩陣,以下所示:大數據

 

#方法二:經過指定表單名的方式來讀取
df=pd.read_excel('lemon.xlsx',sheet_name='student')#能夠經過sheet_name來指定讀取的表單
data=df.head()#默認讀取前5行的數據
print("獲取到全部的值:\n{0}".format(data))#格式化輸出

獲得的結果以下所示,也是一個二維矩陣:編碼

複製代碼

#方法三:經過表單索引來指定要訪問的表單,0表示第一個表單
#也能夠採用表單名和索引的雙重方式來定位表單
#也能夠同時定位多個表單,方式都羅列以下所示
df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#能夠經過表單名同時指定多個
# df=pd.read_excel('lemon.xlsx',sheet_name=0)#能夠經過表單索引來指定讀取的表單
# df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#能夠混合的方式來指定
# df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#能夠經過索引 同時指定多個
data=df.values#獲取全部的數據,注意這裏不能用head()方法哦~
print("獲取到全部的值:\n{0}".format(data))#格式化輸出

複製代碼

具體結果是怎樣的,同窗們能夠本身一個一個的去嘗試,這個結果是很是有意思的,可是同時同窗們也發現了,這個數據是一個二維矩陣,對於咱們去作自動化測試,並不能很順利的處理,因此接下來,咱們就會詳細的講解,如何來讀取行號和列號以及每一行的內容 以及制定行列的內容。url

 

3、pandas操做Excel的行列

1:讀取指定的單行,數據會存在列表裏面

#1:讀取指定行
df=pd.read_excel('lemon.xlsx')#這個會直接默認讀取到這個Excel的第一個表單
data=df.ix[0].values#0表示第一行 這裏讀取數據並不包含表頭,要注意哦!
print("讀取指定行的數據:\n{0}".format(data))

獲得的結果以下所示:

2:讀取指定的多行,數據會存在嵌套的列表裏面:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2]].values#讀取指定多行的話,就要在ix[]裏面嵌套列表指定行數
print("讀取指定行的數據:\n{0}".format(data))

3:讀取指定的行列:

df=pd.read_excel('lemon.xlsx')
data=df.ix[1,2]#讀取第一行第二列的值,這裏不須要嵌套列表
print("讀取指定行的數據:\n{0}".format(data))

4:讀取指定的多行多列值:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2],['title','data']].values#讀取第一行第二行的title以及data列的值,這裏須要嵌套列表
print("讀取指定行的數據:\n{0}".format(data))

5:獲取全部行的指定列

df=pd.read_excel('lemon.xlsx')
data=df.ix[:,['title','data']].values#讀全部行的title以及data列的值,這裏須要嵌套列表
print("讀取指定行的數據:\n{0}".format(data))

6:獲取行號並打印輸出

df=pd.read_excel('lemon.xlsx')
print("輸出行號列表",df.index.values)

輸出結果是:
輸出行號列表 [0 1 2 3]

7:獲取列名並打印輸出

df=pd.read_excel('lemon.xlsx')
print("輸出列標題",df.columns.values)

運行結果以下所示:
輸出列標題 ['case_id' 'title' 'data']

8:獲取指定行數的值:

複製代碼

df=pd.read_excel('lemon.xlsx')
print("輸出值",df.sample(3).values)#這個方法相似於head()方法以及df.values方法

輸出值
 [[2 '輸入錯誤的密碼' '{"mobilephone":"18688773467","pwd":"12345678"}']
 [3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}']
 [1 '正常登陸' '{"mobilephone":"18688773467","pwd":"123456"}']]

複製代碼

9:獲取指定列的值:

df=pd.read_excel('lemon.xlsx')
print("輸出值\n",df['data'].values)

四:pandas處理Excel數據成爲字典

 咱們有這樣的數據,,處理成列表嵌套字典,且字典的key爲表頭名。

實現的代碼以下所示:

複製代碼

df=pd.read_excel('lemon.xlsx')
test_data=[]
for i in df.index.values:#獲取行號的索引,並對其進行遍歷:
    #根據i來獲取每一行指定的數據 並利用to_dict轉成字典
    row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()
    test_data.append(row_data)
print("最終獲取到的數據是:{0}".format(test_data))

複製代碼

最後獲得的結果是:

最終獲取到的數據是:
[{'title': '正常登陸', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'}, 
{'title': '輸入錯誤的密碼', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'}, 
{'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, 
{'title': '充值輸入負數', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

 關於pandas的學習,今天就告一段落啦!趕忙打開pycharm跑起來!!!

相關文章
相關標籤/搜索