摘要:作為一個正奮戰(zhàn)在之路上的球迷,開始了一次數(shù)據(jù)分析實戰(zhàn),于是,以分析球賽數(shù)據(jù)為起點的操作開始了前言作為一個功能強大的編程語言,如今在數(shù)據(jù)分析機器學習人工智能等方面如日中天。
Casey 豈安業(yè)務風險分析師主要負責豈安科技RED.Q的數(shù)據(jù)分析和運營工作。
12月19日,科比再次站在斯臺普斯中心球館中央,見證自己的兩件球衣高懸于球館上空。作為一個正奮戰(zhàn)在 Python 之路上的球迷,開始了一次數(shù)據(jù)分析實戰(zhàn),于是,以分析球賽數(shù)據(jù)為起點的操作開始了......
前言python 作為一個功能強大的編程語言,如今在數(shù)據(jù)分析、機器學習、人工智能等方面如日中天。如果想做數(shù)據(jù)分析,那么 python 則為一把利器。
初入職場,除了使用 python 中列表、元組、字典等常用數(shù)據(jù)類型外,經(jīng)常會接觸到一些如 csv 文件、json 格式的數(shù)據(jù)、或者直接要和數(shù)據(jù)庫打交道。
本文,通過幾個小例子簡述 python 對 csv、json、mysql 的簡單操作。
1已知 nba-season_17_18.csv 文件(見下圖)存放截至目前17-18賽季 NBA 常規(guī)賽聯(lián)盟全部球隊的數(shù)據(jù)。
現(xiàn)在需要將勝率超過 70% 并且場均得分在 110 分的球隊信息寫入到 result.csv 中。
上述對 csv 文件的操作可通過 python 中的 csv 模塊輕松實現(xiàn),csv 模塊分別通過 reader() 和 writer() 實現(xiàn)對 csv 文件的讀寫,這兩種方法都需要傳入文件對象。
因此,首先需要使用 open 方法打開 nba-season_17_18.csv,并創(chuàng)建文件對象。
注意:
需要先將文件第一行要寫入 result.csv,其余行要依次通過if語句判斷勝率和場均得分再選擇是否寫入。
判斷時要注意 reader 中的 row[3] 和 row[10] 是字符串類型,需要轉(zhuǎn)換成 float 類型。
實現(xiàn)的代碼如下:
最終result.csv如下:
2json 作為一種輕量級的文本數(shù)據(jù)交換格式,因為在網(wǎng)絡傳輸過程中具有節(jié)省流量、加快速度等優(yōu)點,使其成為理想的數(shù)據(jù)交換語言。
python 對 json 的操作主要通過 json 模塊中的 dumps() 函數(shù)和 loads() 函數(shù)。前者將 python 對象編碼 json 字符串,而后者則是將已經(jīng)編碼的 json 字符串解碼為 python 對象。
代碼中 dumps() 函數(shù)將列表data編碼為 json,其中參數(shù) separators 默認是", "或": "(逗號和冒號后邊分別有一個空格)。
第三行代碼表示去掉逗號和冒號后邊的空格,參數(shù) indent 設置 json 檢驗后的縮進位數(shù)。
代碼中 loads() 函數(shù)將第三行輸出的 json 解碼為原來的列表格式。
如果上述 json 字符串和 python 對象存儲在文件中,也不用擔心,json 模塊中的 dump() 和 load() 正是為此而生的。見第8行代碼。
輸出結(jié)果如下:
3方便高效的操作數(shù)據(jù)庫可以節(jié)省分析師大量的時間,python 中 pymysql 模塊正好滿足。
該模塊操作數(shù)據(jù)庫的過程可分為以下幾步:
其中,創(chuàng)建 connection 對象需要傳入以下參數(shù):host(MySQL服務器地址)、port(mysql服務器端口號,默認3306)、user(用戶名)、passwd(密碼)、db(數(shù)據(jù)庫名)等。
使用 cursor.execute() 執(zhí)行的 sql 語句,可以是 select 查詢語句,也可以是 insert、update、delete 等操作語句。
cursor 獲取數(shù)據(jù)的方法有:
?fecthone() 獲取結(jié)果集中的下一條數(shù)據(jù)
?fecthmany(n) 獲取結(jié)果集中的下 n 條數(shù)據(jù)
?fetchall() 獲取結(jié)果集中的剩下所有數(shù)據(jù)
下圖是獲取并打印本地數(shù)據(jù)庫中數(shù)據(jù)的一個例子:
值得注意的是, connection 對象除了 cursor() 方法外,還為支持事務提供兩個重要的方法:
commit() 和 rollback()
這兩個方法分別是提交所有操作,和回滾當前游標的所有操作。例如,在上例中,Tom借了Lucy10元錢,那么此時需要先將Lucy的壓歲錢減掉10,然后將Tom的壓歲錢增加10。此時使用事務來保證數(shù)據(jù)庫的完整性,即要么兩步都執(zhí)行,要么都不執(zhí)行。
結(jié)果如下:
結(jié)語本文用 python 對 csv、json、mysql 進行了簡單操作。當然要做好數(shù)據(jù)分析,這些還遠遠不夠。python 知識體系龐大,有大量高效且優(yōu)秀的庫,不得不提的是:
科學計算領域的 NumPy 和 SciPy
數(shù)據(jù)分析領域的 Pandas
機器學習領域的 scikit-learn。
總之,python 的知識點眾多,學好不是一朝一夕的事情。但是,初入職場的小白覺得,學習其中任何一個知識點,除了看書、聽課、參加講座等方式外,更重要的是實際操作能力和思考總結(jié)能力。
當然我也一直在學習中。文中有不當之處,敬請批評指正。如果您有關于數(shù)據(jù)分析的想法,特別歡迎一起交流、共同進步。謝謝。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41179.html
摘要:近日各隊紛紛發(fā)布季前賽賽程,迎接新賽季。實際上,數(shù)據(jù)分析團隊對于現(xiàn)在的球隊已經(jīng)算是標配了,無論是在球員選擇還是戰(zhàn)術(shù)制定上都起著重要的作用。于是,我們就借助官方數(shù)據(jù)和的繪圖函數(shù),來看一看不同的球員都是在什么位置出手投籃的。比如林書豪就是。 showImg(https://segmentfault.com/img/remote/1460000019790849); 作者 | Crossin...
摘要:在本文中,我們將以的決策樹和隨機森林預測獲勝者。用決策樹和隨機森林預測獲勝者導入數(shù)據(jù)集并解析日期導入熊貓作為。這將幫助我們查看決策樹分類器的預測是否正確?;煜仃囷@示了我們決策樹的正確和不正確的分類。 showImg(https://segmentfault.com/img/bVbcr26?w=750&h=383); 在本文中,我們將以Scikit-learn的決策樹和隨機森林預測NB...
摘要:采用機器學習預測足球比賽結(jié)果足球是世界上最火爆的運動之一,世界杯期間也往往是球迷們最亢奮的時刻。特征工程在機器學習中占有非常重要的作用,一般認為括特征構(gòu)建特征提取特征選擇三大部分。 采用 Python 機器學習預測足球比賽結(jié)果 足球是世界上最火爆的運動之一,世界杯期間也往往是球迷們最亢奮的時刻。比賽狂歡季除了炸出了熬夜看球的鐵桿粉絲,也讓足球競猜也成了大家茶余飯后最熱衷的話題。甚至連原...
閱讀 2592·2021-11-22 12:05
閱讀 3476·2021-10-14 09:42
閱讀 1709·2021-07-28 00:15
閱讀 2008·2019-08-30 11:08
閱讀 1509·2019-08-29 17:31
閱讀 952·2019-08-29 16:42
閱讀 2365·2019-08-26 11:55
閱讀 2138·2019-08-26 11:49