Casey 豈安業務風險分析師主要負責豈安科技RED.Q的數據分析和運營工做。python
12月19日,科比再次站在斯臺普斯中心球館中央,見證本身的兩件球衣高懸於球館上空。做爲一個正奮戰在 Python 之路上的球迷,開始了一次數據分析實戰,因而,以分析球賽數據爲起點的操做開始了......mysql
python 做爲一個功能強大的編程語言,現在在數據分析、機器學習、人工智能等方面如日中天。若是想作數據分析,那麼 python 則爲一把利器。
初入職場,除了使用 python 中列表、元組、字典等經常使用數據類型外,常常會接觸到一些如 csv 文件、json 格式的數據、或者直接要和數據庫打交道。
本文,經過幾個小例子簡述 python 對 csv、json、mysql 的簡單操做。sql
1已知 nba-season_17_18.csv 文件(見下圖)存放截至目前17-18賽季 NBA 常規賽聯盟所有球隊的數據。
如今須要將勝率超過 70% 而且場均得分在 110 分的球隊信息寫入到 result.csv 中。數據庫
上述對 csv 文件的操做可經過 python 中的 csv 模塊輕鬆實現,csv 模塊分別經過 reader() 和 writer() 實現對 csv 文件的讀寫,這兩種方法都須要傳入文件對象。
所以,首先須要使用 open 方法打開 nba-season_17_18.csv,並建立文件對象。編程
注意:
須要先將文件第一行要寫入 result.csv,其他行要依次經過if語句判斷勝率和場均得分再選擇是否寫入。
判斷時要注意 reader 中的 row[3] 和 row[10] 是字符串類型,須要轉換成 float 類型。json
實現的代碼以下:服務器
最終result.csv以下:網絡
2json 做爲一種輕量級的文本數據交換格式,由於在網絡傳輸過程當中具備節省流量、加快速度等優勢,使其成爲理想的數據交換語言。
python 對 json 的操做主要經過 json 模塊中的 dumps() 函數和 loads() 函數。前者將 python 對象編碼 json 字符串,然後者則是將已經編碼的 json 字符串解碼爲 python 對象。機器學習
代碼中 dumps() 函數將列表data編碼爲 json,其中參數 separators 默認是", "或": "(逗號和冒號後邊分別有一個空格)。
第三行代碼表示去掉逗號和冒號後邊的空格,參數 indent 設置 json 檢驗後的縮進位數。
代碼中 loads() 函數將第三行輸出的 json 解碼爲原來的列表格式。編程語言
若是上述 json 字符串和 python 對象存儲在文件中,也不用擔憂,json 模塊中的 dump() 和 load() 正是爲此而生的。見第8行代碼。
輸出結果以下:
3方便高效的操做數據庫能夠節省分析師大量的時間,python 中 pymysql 模塊正好知足。
該模塊操做數據庫的過程可分爲如下幾步:
其中,建立 connection 對象須要傳入如下參數:host(MySQL服務器地址)、port(mysql服務器端口號,默認3306)、user(用戶名)、passwd(密碼)、db(數據庫名)等。
使用 cursor.execute() 執行的 sql 語句,能夠是 select 查詢語句,也能夠是 insert、update、delete 等操做語句。
cursor 獲取數據的方法有:
☞fecthone() 獲取結果集中的下一條數據
☞fecthmany(n) 獲取結果集中的下 n 條數據
☞fetchall() 獲取結果集中的剩下全部數據
下圖是獲取並打印本地數據庫中數據的一個例子:
值得注意的是, connection 對象除了 cursor() 方法外,還爲支持事務提供兩個重要的方法:
commit() 和 rollback()
這兩個方法分別是提交全部操做,和回滾當前遊標的全部操做。例如,在上例中,Tom借了Lucy10元錢,那麼此時須要先將Lucy的壓歲錢減掉10,而後將Tom的壓歲錢增長10。此時使用事務來保證數據庫的完整性,即要麼兩步都執行,要麼都不執行。
結果以下:
本文用 python 對 csv、json、mysql 進行了簡單操做。固然要作好數據分析,這些還遠遠不夠。python 知識體系龐大,有大量高效且優秀的庫,不得不提的是:
總之,python 的知識點衆多,學好不是一朝一夕的事情。可是,初入職場的小白以爲,學習其中任何一個知識點,除了看書、聽課、參加講座等方式外,更重要的是實際操做能力和思考總結能力。
固然我也一直在學習中。文中有不當之處,敬請批評指正。若是您有關於數據分析的想法,特別歡迎一塊兒交流、共同進步。謝謝。