回覆列表
  • 1 # 大話資料分析

    學習pandas最好的教程就是官方文件了,每一次python需要模組的更新,官方文件也會做相應的更新,官方的文件是英文的,如果翻譯學習起來比較困難的話,一般在一些論壇裡面也有中文翻譯過來的文件,這樣結合官方文件,學習pandas起來比較容易,pandas的本質是一種資料框的形式,內容跟excel操作學習相似,所以說,學習pandas的時候,裡面的一些資料處理步驟,可以對比excel學習。

    另外推薦CSDA論壇,這個論壇專為學習程式設計的IT人士建立,裡面的好多內容都可以參考學習!

    祝你學習愉快!

  • 2 # 小小猿愛嘻嘻

    當然是有的,首推就是官方教程,最新最全,只不過是英文的,其次就是中文社群,閱讀方便,理解容易,但稍有滯後,下面我簡單介紹一下,感興趣的朋友可以嘗試一下:

    pandas官方教程

    連結地址:https://pandas.pydata.org/docs/index.html

    這是pandas的官方教程,最新最全,示例展示也最為豐富,從基礎的pandas安裝、資料結構(series、dataframe)到高階的各種資料框操作,這個文件都有詳細介紹,不管你是零基礎的初學者還是有一定經驗的開發者,都可以從這裡找到最新、最有價值的資料,但所有資料都是英文的,如果你英文基礎不好,閱讀起來可能會比較費力:

    pandas中文社群

    連結地址:https://www.pypandas.cn/

    這是pandas的中文社群,資料來說也比較全面,但相對於官方教程來說,內容會有些許刪減和濃縮,有些可能也不會是最新的(稍有滯後),閱讀來說,非常方便,都是中文的,一目瞭然,尤其是對於英文基礎不好的開發者,可以說是非常合適,同時官方自帶有一些深度學習資料,包括線性迴歸、影象分類、情感分析、個性化推薦等,如果你對機器學習、推薦演算法比較感興趣,可以參考一下,邊學習邊應用,效果非常不錯:

    其他pandas教程

    連結地址:https://www.yiibai.com/pandas

    這也是一個非常不錯的pandas教程網站,和中文社群一樣,所有資料也都是以文件的形式線上學習,中文,閱讀方便,容易理解,但內容也會稍有滯後,講解來說,比較全面、循序漸進,從基礎的包安裝,到各種資料框操作,都有詳細介紹,如果你是pandas初學者,可以說是非常合適,邊學習邊練習,效果也會非常不錯:

    目前就分享這3個不錯的pandas教程吧,不管是對於初學還是深入學習來說,都完全夠用了,只要你多看多練,很快就能掌握的,後期就是結合實際例子做專項訓練,積累經驗,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。

  • 3 # 布衣學Python

    學習pandas最好的教程就是官方文件了,每一次python需要模組的更新,官方文件也會做相應的更新,官方的文件是英文的,如果翻譯學習起來比較困難的話,一般在一些論壇裡面也有中文翻譯過來的文件,這樣結合官方文件,學習pandas起來比較容易,pandas的本質是一種資料框的形式,內容跟excel操作學習相似,所以說,學習pandas的時候,裡面的一些資料處理步驟,可以對比excel學習。

    另外推薦CSDA論壇,這個論壇專為學習程式設計的IT人士建立,裡面的好多內容都可以參考學習!

    祝你學習愉快!

  • 4 # 小小程式設計師玲兒

    百戰程式設計師IT問題專業解答

    學習pandas最好的教程就是官方文件了,每一次python需要模組的更新,官方文件也會做相應的更新,官方的文件是英文的,如果翻譯學習起來比較困難的話,一般在一些論壇裡面也有中文翻譯過來的文件,這樣結合官方文件,學習pandas起來比較容易,pandas的本質是一種資料框的形式,內容跟excel操作學習相似,所以說,學習pandas的時候,裡面的一些資料處理步驟,可以對比excel學習

  • 5 # 52sissi

      Python的pandas庫是使Python成為用於資料分析的出色程式語言的一件事。Pandas使匯入,分析和視覺化資料變得更加容易。它建立在NumPy和matplotlib之類的軟體包的基礎上,使您可以方便地進行大部分資料分析和視覺化工作。

      當我們分析影片遊戲評論時,我們將瞭解關鍵的Pandas概念,例如索引。您可以繼續進行下去,並在我們的許多其他Python教程之一中或透過註冊Python Pandas課程來了解有關Python和Pandas的更多資訊。我們的許多其他資料科學課程也都使用Pandas。

      謹記一下,本教程使用Python 3.5編寫,並使用Jupyter Notebook構建。您可能使用的是Python,pandas和Jupyter的更新版本,但結果應該基本相同。

      用Pandas匯入資料

      如果您正在使用本教程,則需要下載資料集,您可以在此處進行操作。

      我們將採取的第一步是讀取資料。資料以逗號分隔的值或csv檔案儲存,其中每行用換行分隔,每列用逗號(,)分隔。這是ign.csv檔案的前幾行:

      如您在上方看到的,檔案中的每一行代表一個遊戲,該遊戲已經過IGN審查。這些列包含有關該遊戲的資訊:

      1)score_phrase— IGN如何用一個詞形容遊戲。這連結到它收到的分數。

      2)title -遊戲名稱。

      4)platform -審查遊戲的平臺(PC,PS4等)。

      5)score—遊戲的得分,從1.0到10.0。

      6)genre —遊戲型別。

      7)editors_choice- N如果遊戲不是編輯選擇的Y話,那麼是。這與得分息息相關。

      8)release_year -遊戲釋出的年份。

      9)release_month -遊戲釋出的月份。

      10)release_day -遊戲釋出的那天。

      還有一個前導列,其中包含行索引值。我們可以放心地忽略此列,但稍後將深入探討哪些索引值。

      為了在Python和pandas中有效地處理資料,我們需要將csv檔案讀取到Pandas DataFrame中。DataFrame是表示和處理表格資料的一種方式,表格資料是表格形式的資料,例如電子表格。表格資料具有行和列的格式,就像我們的csv檔案一樣,但是如果我們可以將其作為表格檢視,則對我們來說更易於閱讀和排序。

      為了讀入資料,我們需要使用pandas.read_csv函式。此函式將接收一個csv檔案並返回一個DataFrame。以下程式碼將:

      a.匯入pandas庫。我們將其重新命名為,pd以便更快地輸入。這是資料分析和資料科學中的標準約定,您經常會看到匯入的Pandas就像pd其他人的程式碼一樣。

      b.讀ign.csv入一個DataFrame,並將結果分配給一個名為的新變數,reviews以便我們可以reviews用來引用我們的資料。

      讀完DataFrame後,以更直觀的方式看一下我們所獲得的內容將很有幫助。Pandas方便地為我們提供了兩種方法,可以快速地將資料列印到表中。這些功能是:

      1)DataFrame.head()—列印DataFrame的前N行,其中N是您作為引數傳遞給函式的數字,即DataFrame.head(7)。如果不傳遞任何引數,則預設值為5。

      2)DataFrame.tail()—列印DataFrame的最後N行。同樣,預設值為5。

      我們將使用該head方法檢視其中的內容reviews:

      我們還可以訪問pandas.DataFrame.shape屬性,以檢視以下行reviews:

      如我們所見,所有內容均已正確讀取-我們有18,625行和11列。

      與類似的NumPy這樣的Python軟體包相比,使用Pandas的一大優勢是Pandas允許我們擁有具有不同資料型別的列。在我們的資料集中,reviews我們有儲存浮點值(如)score,字串值(如score_phrase)和整數(如)的列release_year,因此在此處使用NumPy會很困難,但Pandas和Python可以很好地處理它。

      現在我們已經正確地讀取了資料,讓我們開始建立索引reviews以獲取所需的行和列。

      用Pandas索引DataFrames

      之前,我們使用了該head方法來列印的第一5行reviews。我們可以使用pandas.DataFrame.iloc方法完成同樣的事情。該iloc方法允許我們按位置檢索行和列。為此,我們需要指定所需行的位置以及所需列的位置。下面的程式碼將reviews.head()透過選擇行0到5,以及資料集中的所有列來複制我們的結果:

      讓我們更深入地研究我們的程式碼:我們指定了想要的rows 0:5。這意味著我們想要從position 0到(但不包括)position的行5。

      第一行被認為是在位置0,所以選擇行0:5給了我們行的位置0,1,2,3,和4。我們也需要所有列,並且使用快捷方式來選擇它們。它的工作方式是這樣的:如果我們不喜歡第一個位置值,例如:5,那是假設我們的意思0。如果我們忽略了最後一個位置值(如)0:,則假定我們是指DataFrame中的最後一行或最後一列。我們需要所有列,因此只指定了一個冒號(:),沒有任何位置。這使我們的列從0到最後一列。以下是一些索引示例以及結果:

      1)reviews.iloc[:5,:]—第一5行,以及這些行的所有列。

      2)reviews.iloc[:,:] —整個DataFrame。

      3)reviews.iloc[5:,5:]—從位置5開始的行,從位置開始的列5。

      4)reviews.iloc[:,0] —第一列,以及該列的所有行。

      5)reviews.iloc[9,:] —第十行,以及該行的所有列。

      在Pandas中使用標籤在Python中建立索引

      既然我們知道如何按位置檢索行和列,那麼值得研究使用DataFrames的另一種主要方法,即按標籤檢索行和列。與NumPy相比,Pandas的主要優勢在於,每一列和每一行都有一個標籤。可以處理列的位置,但是很難跟蹤哪個數字對應於哪個列。

      我們可以使用pandas.DataFrame.loc方法處理標籤,該方法允許我們使用標籤而不是位置進行索引。我們可以reviews使用以下loc方法顯示前五行:

      上面的內容實際上與並沒有太大的不同reviews.iloc[0:5,:]。這是因為儘管行標籤可以採用任何值,但我們的行標籤與位置完全匹配。您可以在上方表格的最左側看到行標籤(它們以粗體顯示)。您還可以透過訪問DataFrame 的index屬性來檢視它們。我們將顯示的行索引reviews:

      reviews.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, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, ...], dtype="int64")

      不過,索引不一定總是與位置匹配。在下面的程式碼單元中,我們將:

      a.獲取行10至行20的reviews,並分配結果some_reviews。

      b.顯示的第一5行some_reviews。

      如上所示,在中some_reviews,行索引始於,10結束於20。因此,嘗試loc使用小於10或大於的數字20將導致錯誤:

      some_reviews.loc[9:21,:]

      如前所述,在使用資料時,列標籤可以使工作變得更加輕鬆。我們可以在loc方法中指定列標籤,以按標籤而不是按位置檢索列。

      我們還可以透過傳入列表來一次指定多個列:

      Pandas系列物件

      我們可以通過幾種不同的方式在Pandas中檢索單個列。到目前為止,我們已經看到了兩種語法:

      1)reviews.iloc[:,1] —將檢索第二列。

      2)reviews.loc[:,"score_phrase"] —還將檢索第二列。

      還有第三種甚至更容易的方法來檢索整列。我們可以在方括號中指定列名稱,例如使用字典:

      我們還可以透過以下方法使用列列表:

      當我們檢索單個列時,實際上是在檢索Pandas Series物件。DataFrame儲存表格資料,而Series儲存資料的單列或單行。

      我們可以驗證單個列是否為系列:

      我們可以手動建立系列以更好地瞭解其工作原理。要建立一個Series,我們在例項化它時將一個列表或NumPy陣列傳遞給Series物件:

      系列可以包含任何型別的資料,包括混合型別。在這裡,我們建立一個包含字串物件的系列:

      在Pandas中建立一個DataFrame

      我們可以透過將多個Series傳遞到DataFrame類中來建立DataFrame。在這裡,我們傳入剛剛建立的兩個Series物件,

      s1作為第一行,s2作為第二行:

      我們還可以使用列表列表完成同樣的事情。每個內部列表在結果DataFrame中被視為一行:

      我們可以在建立DataFrame時指定列標籤:

      以及行標籤(索引):

      還請注意,不需要縮排和單獨的行。我們已經以這種方式編寫了程式碼,以使其更易於解析,但是您經常會遇到將它們全部寫成一行的情況。例如,以下程式碼將產生與我們在本段上方的表中看到的結果完全相同的結果:

      無論如何,新增標籤後,便可以使用它們對DataFrame進行索引:

      columns如果將字典傳遞給DataFrame建構函式,則可以跳過指定關鍵字引數的操作。這將自動設定列名稱:

      PandasDataFrame方法

      如前所述,pandas DataFrame中的每一列都是Series物件:

      我們可以在Series物件上呼叫與在DataFrame上可以呼叫的大多數相同的方法,包括head:

      Pandas Series和DataFrames還具有其他使計算更簡單的方法。例如,我們可以使用pandas.Series.mean方法來查詢Series的均值:

      我們還可以呼叫類似的pandas.DataFrame.mean方法,該方法預設情況下將查詢DataFrame中每個數字列的平均值:

      我們可以修改axis關鍵字引數以mean計算每行或每列的平均值。預設情況下,axis等於0,並將計算每列的平均值。我們還可以將其設定1為計算每行的平均值。請注意,這隻會計算每行中數值的平均值:

      reviews.mean(axis=1)

      0 510.500

      1 510.500

      2 510.375

      3 510.125

      4 510.125

      5 509.750

      6 508.750

      7 510.250

      8 508.750

      9 509.750

      10 509.875

      11 509.875

      12 509.500

      13 509.250

      14 509.250

      ...

      18610 510.250

      18611 508.700

      18612 509.200

      18613 508.000

      18614 515.050

      18615 515.050

      18616 508.375

      18617 508.600

      18618 515.025

      18619 514.725

      18620 514.650

      18621 515.000

      18622 513.950

      18623 515.000

      18624 515.000

      Length: 18625, dtype: float64

      Series和DataFrames上有很多類似的方法mean。這裡有一些方便的東西:

      1)pandas.DataFrame.corr —查詢DataFrame中各列之間的相關性。

      2)pandas.DataFrame.count —計算每個DataFrame列中非空值的數量。

      3)pandas.DataFrame.max —在每一列中找到最大值。

      4)pandas.DataFrame.min —查詢每一列中的最小值。

      5)pandas.DataFrame.median —查詢每列的中位數。

      6)pandas.DataFrame.std —查詢每列的標準偏差。

      例如,我們可以使用該corr方法檢視是否有任何列與關聯score。這可以告訴我們最近釋出的遊戲獲得了更高的評價(release_year),還是在年底之前釋出的遊戲獲得了更好的評分(release_month):

      DataFrame Math與Pandas

      我們還可以使用pandas在Python中的Series或DataFrame物件上執行數學運算。例如,我們可以將score列中的每個值除以2以將刻度從0– 切換10到0– 5:

      reviews["score"] / 2

      0 4.50

      1 4.50

      2 4.25

      3 4.25

      4 4.25

      5 3.50

      6 1.50

      7 4.50

      8 1.50

      9 3.50

      10 3.75

      11 3.75

      12 3.50

      13 4.50

      14 4.50

      ...

      18610 3.00

      18611 2.90

      18612 3.90

      18613 4.00

      18614 4.60

      18615 4.60

      18616 3.75

      18617 4.20

      18618 4.55

      18619 3.95

      18620 3.80

      18621 4.50

      18622 2.90

      18623 5.00

      18624 5.00

      Name: score, Length: 18625, dtype: float64

      所有常用的數學運算子在Python的工作,如+,-,*,/,和^將在系列或DataFrames大Pandas的工作,並且將適用於每一個元素在一個數據幀或一個系列。

      Pandas中的布林索引

      現在我們已經瞭解了一些Pandas的基礎知識,讓我們繼續進行分析。我們前面看到的,平均都在值的score列reviews左右7。如果我們想找到所有得分都高於平均水平的遊戲怎麼辦?

      我們可以先進行比較。比較會將“系列”中的每個值與指定值進行比較,然後生成一個“系列”,其中包含表示比較狀態的布林值。使用Python Pandas分析影片遊戲資料https://www.aaa-cg.com.cn/data/2310.html例如,我們可以看到哪些行的score值大於7:

      score_filter = reviews["score"] > 7

      score_filter

      0 True

      1 True

      2 True

      3 True

      4 True

      5 False

      6 False

      7 True

      8 False

      9 False

      10 True

      11 True

      12 False

      13 True

      14 True...

      18610 False

      18611 False

      18612 True

      18613 True

      18614 True

      18615 True

      18616 True

      18617 True

      18618 True

      18619 True

      18620 True

      18621 True

      18622 False

      18623 True

      18624 True

      Name: score, Length: 18625, dtype: bool

      有了布林系列後,我們可以使用它來選擇DataFrame中該系列包含value的行True。所以,我們只能選擇行reviews,其中score大於7:

      可以使用多個條件進行過濾。假設我們要查詢針對發行Xbox One的得分超過的遊戲7。在下面的程式碼中,我們:

      a.設定兩個條件的過濾器:

        1)檢查是否score大於7。

        2)檢查是否platform相等Xbox One

      b.應用過濾器以reviews僅獲取所需的行。

      c.使用head方法列印的第一5行filtered_reviews。

      在使用多個條件進行過濾時,將每個條件放在括號中並用一個&符號(&)分隔是很重要的。

      Pandas圖

      現在我們知道如何過濾,我們可以建立圖以觀察的回顧分佈Xbox One與的回顧分佈PlayStation 4。這將幫助我們確定哪個控制檯具有更好的遊戲。

      我們可以透過直方圖來做到這一點,該直方圖將繪製不同得分範圍內的頻率。我們可以使用pandas.DataFrame.plot方法為每個控制檯製作一個直方圖。該方法利用幕後的流行Python繪相簿matplotlib生成美觀的繪圖。

      該plot方法預設為繪製折線圖。我們需要傳入關鍵字引數kind="hist"來繪製直方圖。在下面的程式碼中,我們:

      a.致電%matplotlib inline以在Jupyter筆記本中設定繪圖。

      b.過濾reviews以僅包含有關的資料Xbox One。

      c.繪製score列。

      我們也可以對PS4:

      從我們的直方圖中可以看出,與相比,PlayStation 4具有更高評級的遊戲Xbox One。

      顯然,這只是冰山一角,涉及到我們可以用來分析該資料集的潛在方向,但我們已經有了一個很好的開端:我們已經使用Python和pandas匯入了資料集,並學會了使用各種不同的索引方法選擇我們想要的資料點,並進行了一些快速的探索性資料分析,以回答我們開始時遇到的問題。

    https://www.toutiao.com/i6832518344541733380/

  • 6 # 張文彤老師

    英文過關的話,首選pandas官方教程,連結地址:https://pandas.pydata.org/docs/index.html

    希望看影片學習的話,可以看看我的《Python資料分析--玩轉Pandas》,連結地址:https://study.163.com/course/courseMain.htm?courseId=1005071007

    Python 3 資料分析系列課程學習路徑

  • 中秋節和大豐收的關聯?
  • 肉桂茶什麼時節喝最好?