用資料分析來管理裝置

weixin_33871366發表於2017-08-17

由於現在移動裝置廠商多,機型多,為了測試相容性,導致測試的裝置也多。如何管理好測試裝置,也是有學問的。

很多公司,會買很多測試裝置來測試相容性。有的裝置是共享的,有人借走裝置沒有及時歸還。
或者裝置需要系統更新升級,淘汰老裝置,購置新裝置等,都需要有人去管理。怎麼能高效的管理裝置?

首先我們來認識一個python資料分析的利器:pandas
Pandas最初被作為金融資料分析工具而開發出來,因此,pandas為時間序列分析提供了很好的支援。 Pandas的名稱來自於皮膚資料(panel data)和python資料分析(data analysis)。
pandas提供了大量能使我們快速便捷地處理資料的函式和方法。

pandas很方便的從一個csv,excel檔案,或者一個web,一個資料庫,撈到這樣一張表。
無論是儲存在excel,還是儲存在資料庫,展示在web page上。我們可以通過爬蟲等方法,得到一個這樣的表。
對pandas來說,就是一個二維的陣列。

  1. 讀寫csv,excel
pd.to_csv("devices_tablet.csv")
pd.read_csv("devices_tablet.csv")
pd.to_excel()
pd.read_excel()
  1. 從網頁的表中撈資料(前提是網頁中需要有表結構)
    比爬蟲方便多了。
pd.read_html()
  1. 從資料庫中撈資料。
pd.to_sql()
pd.read_sql()

假設我們有個這樣的裝置列表。記錄在conflunce上的,使用起來方便,有改動記錄,提醒,賬號等各方面功能。


689830-2fbd28e58c7b0974.png
Screen Shot 2017-08-01 at 4.14.33 PM.png

好了,我們可以撈到這張表。

result = requests.Session().get(CONFLUENCE_DEVICE_TRACKING_URL, verify=False).content
table = pd.read_html(result)
android_device = table[0]

然後按照某些關鍵字,儲存到檔案中去:

phone_device = android_device[android_device[4] == 'Tablet']
phone_device.to_csv("devices_tablet.csv")

按照某些行列,就可以得到我們想要的資料。
如我想知道品牌,和版本:

print(phone_device.groupby(5).size())
print(phone_device.groupby(1).size())

結果類似這樣的:

Android 4.0.4    1
Android 4.1.2    6
Android 4.3.0    1
Android 4.4.4    1
Android 5.0      1
Android 5.1.1    2
Android 6.0.1    1
Android 7.1.1    1

一段程式碼,就可以畫成圖表:

sum_df = phone_device.groupby(5).size()
sum_df.plot(kind='pie', subplots=True, autopct='%.2f', figsize=(8, 8), title = "Versions", legend = True)  # 顯示百分比
plt.show()

結果如下:

689830-49ecc32018816537.png
Screen Shot 2017-08-01 at 4.48.10 PM.png

輕輕鬆鬆的就統計出來了。
根據統計,就可以升級,淘汰,購買裝置了。
當然,還可以加段程式碼,定義一個規則,借出的裝置,超過多長時間,自動發郵件提醒。

更多精彩,請關注微信公眾號: python愛好部落

相關文章