如何學(xué)習(xí)python工具包 如何使用Python Pandas模塊讀取各類型文件?
如何使用Python Pandas模塊讀取各類型文件?Python pandas庫(kù)是Python成為數(shù)據(jù)分析優(yōu)秀編程語(yǔ)言的原因之一。Pandas使導(dǎo)入、分析和可視化數(shù)據(jù)變得更加容易。它基于NumPy
如何使用Python Pandas模塊讀取各類型文件?
Python pandas庫(kù)是Python成為數(shù)據(jù)分析優(yōu)秀編程語(yǔ)言的原因之一。Pandas使導(dǎo)入、分析和可視化數(shù)據(jù)變得更加容易。它基于NumPy和matplotlib等軟件包,方便您進(jìn)行大部分?jǐn)?shù)據(jù)分析和可視化。
在這篇Python數(shù)據(jù)科學(xué)教程中,我們將使用Eric Grinstein捕獲的數(shù)據(jù),使用熊貓來(lái)分析來(lái)自流行的視頻游戲評(píng)論網(wǎng)站IGN的視頻游戲評(píng)論。哪個(gè)主持人贏得了 "控制臺(tái)戰(zhàn)爭(zhēng)與游戲(游戲?qū)彶榉矫??這個(gè)數(shù)據(jù)集將幫助我們找到答案。
當(dāng)我們分析視頻游戲評(píng)論時(shí),我們將理解關(guān)鍵的熊貓概念,例如索引。您可以在我們的其他Python教程中學(xué)習(xí)更多關(guān)于Python和Pandas的知識(shí),或者注冊(cè)Python Pandas課程。熊貓也用于我們的許多其他數(shù)據(jù)科學(xué)課程。
請(qǐng)記住,本教程是用Python 3.5編寫(xiě)的,內(nèi)置在Jupyter Notebook中。你可能用的是較新版本的Python,pandas和Jupyter,但是結(jié)果應(yīng)該基本相同。
用熊貓導(dǎo)入數(shù)據(jù)
如果你正在使用本教程,你需要下載數(shù)據(jù)集,你可以在這里。
我們將采取的第一步是讀取數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)在逗號(hào)分隔值或csv文件中,其中每行由換行符分隔,每列由逗號(hào)(,)分隔。以下是ign.csv文件的前幾行:
從上面可以看到,文件中的每一行都代表一款游戲,已經(jīng)過(guò)IGN審核。這些欄包含關(guān)于游戲的信息:
1) 1)score_phrase— IGN如何用一個(gè)詞描述游戲。這鏈接到它收到的分?jǐn)?shù)。
2)標(biāo)題——游戲的名稱。
3)url—您可以在其中查看完整注釋的URL。
4)平臺(tái)——一個(gè)評(píng)論游戲的平臺(tái)(PC,PS4等。).
5)分?jǐn)?shù)——游戲的分?jǐn)?shù),從1.0到10.0。
6)流派——游戲類型。
7)editors_choice- N如果游戲不是編輯選擇的Y,那么就是。這和分?jǐn)?shù)密切相關(guān)。
8)release _ year——游戲發(fā)布的年份。
9)release _ month——游戲發(fā)布的月份。
10)release _ day——游戲發(fā)布的那一天。
還有一個(gè)包含行索引值的前導(dǎo)列。我們可以放心地忽略該列,但是我們將在后面深入討論哪些索引值。
為了為了在Python和pandas中有效地處理數(shù)據(jù),我們需要將csv文件讀入Pandas DataFrame。DataFrame是一種表示和處理表格數(shù)據(jù)的,也就是表格數(shù)據(jù),比如電子表格。表格數(shù)據(jù)具有行和列的格式,就像我們的csv文件一樣,但是如果我們可以將其作為表格來(lái)查看,我們將更容易讀取和排序。
為了讀入數(shù)據(jù),我們需要使用_csv函數(shù)。這個(gè)函數(shù)將接收一個(gè)csv文件并返回一個(gè)數(shù)據(jù)幀。以下代碼將:
A.導(dǎo)入熊貓庫(kù)。為了更快地輸入,我們將其重命名為pd。這是數(shù)據(jù)分析和數(shù)據(jù)科學(xué)中的標(biāo)準(zhǔn)約定。你會(huì)經(jīng)常看到進(jìn)口的熊貓和其他人一樣。;pd中的s代碼。
B.將ign.csv讀入DataFrame,并將結(jié)果賦給一個(gè)名為reviews的新變量,這樣我們就可以使用reviews來(lái)引用我們的數(shù)據(jù)。
讀完DataFrame,用更直觀的看看我們得到了什么,會(huì)很有幫助。Pandas方便地為我們提供了兩種快速將數(shù)據(jù)打印到表格中的方法。這些功能是:
1)DataFrame.head()—打印DataFrame的前n行,其中n是作為參數(shù)傳遞給函數(shù)的數(shù)字,即DataFrame.head(7)。如果沒(méi)有傳遞參數(shù),默認(rèn)值為5。
2)DataFrame.tail()—打印DataFrame的最后n行。同樣,默認(rèn)值是5。
我們將使用此標(biāo)題方法來(lái)查看內(nèi)容評(píng)論:
我們還可以訪問(wèn)酒店,查看以下線路評(píng)論:
正如我們所看到的,一切都被正確地讀取了——我們有18,625行和11列。
與像NumPy這樣的Python包相比,使用Pandas的一個(gè)優(yōu)點(diǎn)是它允許我們擁有不同數(shù)據(jù)類型的列。在我們的數(shù)據(jù)集中,reviews有一個(gè)列release_year,存儲(chǔ)浮點(diǎn)值(比如score)、字符串值(比如score_phrase)和整數(shù)(比如),所以在這里使用NumPy會(huì)比較困難,但是Pandas和Python可以很好地處理。
既然我們已經(jīng)正確地讀取了數(shù)據(jù),讓 讓我們開(kāi)始構(gòu)建索引審查,以獲得所需的行和列。
用熊貓索引數(shù)據(jù)幀
以前,我們使用這種標(biāo)題方法來(lái)打印前5行評(píng)論。我們可以使用該方法來(lái)完成同樣的事情。這個(gè)iloc方法允許我們按位置檢索行和列。為此,我們需要指定哪里需要行,哪里需要列。以下代碼通過(guò)選擇數(shù)據(jù)集中的第0行到第5行以及所有列來(lái)復(fù)制我們的結(jié)果:
讓 讓我們更深入地研究我們的代碼:我們指定了所需的行0:5。這意味著我們希望第5行從位置0到(但不包括)位置。
第一行被認(rèn)為是在位置0,所以選擇行0:5給我們位置0,1,2,3,4。我們還需要所有的列,并使用快捷鍵來(lái)選擇它們。它是這樣工作的:如果我們不 不喜歡第一個(gè)位置值,比如:5,假設(shè)我們的意思是0。如果我們忽略最后一個(gè)位置值(如)0:),則假設(shè)我們指的是數(shù)據(jù)幀中的最后一行或最后一列。我們需要所有的列,所以只指定一個(gè)冒號(hào)((:),沒(méi)有任何位置。這會(huì)將我們的列從0移動(dòng)到最后一列。以下是一些索引示例和結(jié)果:
1)[:5,:]-前5行,以及這些行的所有列。
2)[:,:]-整個(gè)數(shù)據(jù)幀。
3)[5:,5 :]-行從位置5開(kāi)始,列從位置5開(kāi)始。
4)[:,0]—第一列,以及該列中的所有行。
5)[9,:]-第十行,以及這一行的所有列。
按位置索引非常類似于NumPy索引。如果想了解更多,可以看看我們的NumPy教程。現(xiàn)在我們知道了如何通過(guò)位置索引,讓 讓我們刪除第一列。;我沒(méi)有任何有用的信息:
在Pandas中使用標(biāo)簽在Python中創(chuàng)建索引
既然我們知道了如何按位置檢索行和列,那么值得研究使用DataFrames的另一個(gè)主要方法,即按標(biāo)簽檢索行和列。與NumPy相比,熊貓的主要優(yōu)勢(shì)是每一列每一行都有一個(gè)標(biāo)簽。您可以處理列的位置,但是很難跟蹤哪個(gè)數(shù)字對(duì)應(yīng)于哪個(gè)列。
我們可以使用方法來(lái)處理標(biāo)簽,這允許我們使用標(biāo)簽而不是位置進(jìn)行索引。我們可以使用下面的loc方法來(lái)顯示r:5,:】沒(méi)有太大區(qū)別。這是因?yàn)?,盡管行標(biāo)簽可以采用任何值是什么,但是我們的行標(biāo)簽與位置完全匹配。您可以在上表的最左側(cè)看到行標(biāo)簽(它們以粗體顯示)。您也可以通過(guò)訪問(wèn)DataFrame的index屬性來(lái)查看它們。我們將顯示行索引評(píng)論:
Int64Index([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,42 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, ...],dtypeint64)
但是,索引并不總是與位置匹配。在下面的代碼單元中,我們將:
A.從第10行到第20行獲取評(píng)論,并將結(jié)果分配給some_reviews。
B.顯示某些評(píng)論的前5行。
如上圖,在某些_reviews中,行索引從開(kāi)始,10到20結(jié)束。因此,嘗試將小于10或大于10的數(shù)字20用于loc將導(dǎo)致錯(cuò)誤:
some_reviews.loc[9:21,:]
如前所述,使用數(shù)據(jù)時(shí),列標(biāo)簽可以使工作更容易。我們可以在loc方法中指定列標(biāo)簽,通過(guò)標(biāo)簽而不是位置來(lái)檢索列。
我們還可以通過(guò)傳入一個(gè)列表來(lái)一次指定多個(gè)列:
熊貓系列物品
我們可以用幾種不同的方法在Pandas中檢索一個(gè)單獨(dú)的列。到目前為止,我們已經(jīng)看到了兩種語(yǔ)法:
1)[:,1]—檢索第二列。
2)reviews . loc[:,scor: 18625,dtyp:浮動(dòng)64
在序列和數(shù)據(jù)幀上也有類似的方法。這里有一些方便的東西:
1)—找出數(shù)據(jù)幀中各列之間的相關(guān)性。
2)—計(jì)算每個(gè)DataFrame列中非空值的數(shù)量。
3)—找出每列中的最大值。
4)—找出每列中的最小值。
5)—求每列的中值。
6)—求每列的標(biāo)準(zhǔn)差。
例如,我們可以使用這個(gè)corr方法來(lái)查看是否有任何列與分?jǐn)?shù)相關(guān)聯(lián)。這可以告訴我們是最近發(fā)布的游戲獲得了更高的評(píng)級(jí)(r:得分,L: 18625,dtyp:浮動(dòng)64
所有常用的數(shù)算符都在Python中工作,例如,-、*、/,并將在序列或數(shù)據(jù)幀中工作,并將應(yīng)用于數(shù)據(jù)幀或序列中的每個(gè)元素。
熊貓的布爾索引
既然我們已經(jīng)了解了一些關(guān)于熊貓的基本知識(shí),讓我們一起來(lái)學(xué)習(xí)吧。;讓我們繼續(xù)分析。我們之前看到的,平均來(lái)說(shuō),在評(píng)分欄中的價(jià)值評(píng)價(jià)是7左右。如果我們想找到所有分?jǐn)?shù)高于平均水平的游戲呢?
我們可以先做個(gè)對(duì)比。Comparison將序列中的每個(gè)值與指定的值進(jìn)行比較,然后生成一個(gè)包含指示比較狀態(tài)的布爾值的序列。例如,使用Python Pandas分析視頻游戲數(shù)據(jù),我們可以看到哪些行的分?jǐn)?shù)值大于7:
分?jǐn)?shù)_過(guò)濾評(píng)論[分?jǐn)?shù)] gt 7
分?jǐn)?shù)_過(guò)濾器
0真
1正確
2正確
3正確
4正確
5錯(cuò)誤
6錯(cuò)誤
7正確
8假
9假
10正確
11正確
12個(gè)錯(cuò)誤
13正確
14對(duì)...
18610假
18611錯(cuò)誤
18612正確
18613正確
18614正確
18615正確
18616真
18617正確
18618正確
18619正確
18620正確
18621正確18622錯(cuò)誤
18623正確
18624正確
Nam:得分,L: 18625,dtyp:·波爾
對(duì)于布爾序列,我們可以使用它在序列包含值的數(shù)據(jù)幀中選擇行True。因此,我們只能選擇得分大于7的行評(píng)審:
您可以使用多個(gè)篩選標(biāo)準(zhǔn)。假設(shè)我們?cè)趯ふ野l(fā)布Xbox One得分超過(guò)0的第7場(chǎng)比賽。在下面的代碼中,我們:
A.為兩個(gè)條件設(shè)置過(guò)濾器:
1)檢查分?jǐn)?shù)是否大于7。
2)檢查平臺(tái)是否等于Xbox One。
B.應(yīng)用篩選器僅查看所需的行。
C.head方法打印的前5行是filtered_reviews。
當(dāng)使用多個(gè)條件進(jìn)行篩選時(shí),將每個(gè)條件放在括號(hào)中并用amp符號(hào)分隔是很重要的。
熊貓圖
現(xiàn)在我們知道了如何篩選,我們可以創(chuàng)建圖表來(lái)觀察Xbox One和PlayStation 4的回溯分布。這將幫助我們確定哪個(gè)主機(jī)的游戲更好。
我們可以通過(guò)直方圖來(lái)做到這一點(diǎn),直方圖將繪制不同得分范圍內(nèi)的頻率。我們可以使用該方法為每個(gè)控制臺(tái)制作一個(gè)直方圖。這種方法在幕后使用流行的Python繪圖庫(kù)matplotlib來(lái)生成漂亮的繪圖。
繪圖方法默認(rèn)為繪制折線圖。我們需要傳入關(guān)鍵字參數(shù)kindhist來(lái)繪制直方圖。在下面的代碼中,我們:
A.內(nèi)聯(lián)調(diào)用%matplotlib在Jupyter筆記本中設(shè)置繪圖。
B.過(guò)濾評(píng)論,僅包含相關(guān)數(shù)據(jù)。
C.畫(huà)分?jǐn)?shù)欄。
我們還可以談?wù)凱S4:
從我們的柱狀圖可以看出,PlayStation 4的評(píng)分高于Xbox On
python如何安裝詞云庫(kù)?
使用python 的官方軟件包管理pip來(lái)安裝它,如下所示。:
安裝命令:pip安裝word云庫(kù)sdk名稱,適用于安裝任何第三方,只要替換正確的第三方sdk名稱即可。
以上是我的回答,希望對(duì)題主有所幫助。