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