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