? ? ? ?最近迷上了高效處理數據的pandas,其實這個是用來做數據分析的,如果你是做大數據分析和測試的,那么這個是非常的有用的??!但是其實我們平時在做自動化測試的時候,如果涉及到數據的讀取和存儲,那么而利用pandas就會非常高效,基本上3行代碼可以搞定你20行代碼的操作!該教程僅僅限于結合檸檬班的全棧自動化測試課程來講解下pandas在項目中的應用,這僅僅只是冰山一角,希望大家可以踴躍的去嘗試和探索!
???? 一、安裝環境:
1:pandas依賴處理Excel的xlrd模塊,所以我們需要提前安裝這個,安裝命令是:pip install xlrd 2:安裝pandas模塊還需要一定的編碼環境,所以我們自己在安裝的時候,確保你的電腦有這些環境:Net.4 、VC-Compiler以及winsdk_web,如果大家沒有這些軟件~可以咨詢我們的輔導員索要相關安裝工具。 3:步驟1和2 準備好了之后,我們就可以開始安裝pandas了,安裝命令是:pip install pandas 一切準備就緒,就可以開始愉快的玩耍咯! ps:在這個過程中,可能會遇到安裝不順利的情況,萬能的度娘有N種解決方案,你這么大應該要學著自己解決問題。
?
?????? 二、pandas操作Excel表單
? 數據準備,有一個Excel文件:lemon.xlsx有兩個表單,表單名分別為:Python 以及student,
Python的表單數據如下所示:
?
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))#格式化輸出
具體結果是怎樣的,同學們可以自己一個一個的去嘗試,這個結果是非常有意思的,但是同時同學們也發現了,這個數據是一個二維矩陣,對于我們去做自動化測試,并不能很順利的處理,所以接下來,我們就會詳細的講解,如何來讀取行號和列號以及每一行的內容 以及制定行列的內容。
?
三、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跑起來?。?!轉載自:https://www.cnblogs.com/liulinghua90/,
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
