首頁>Club>
21
回覆列表
  • 1 # 52sissi

      當我們使用Python進行資料分析時,有時可能需要根據DataFrame其他列中的值向pandas DataFrame新增一列。

      儘管這聽起來很簡單,但是如果我們嘗試使用if-else條件語句來做,可能會變得有些複雜。值得慶幸的是,有一種使用numpy做到這一點的簡單,好方法!

      我們將從匯入pandas和numpy開始,並載入資料集以檢視其外觀。

      我們可以看到我們的資料集包含有關每個推文的一些資訊,包括:

      1)date —推文釋出的日期

      2)time —發推文的時間

      3)tweet -該推文的實際文字

      4)mentions -推文中提及的任何其他Twitter使用者

      5)photos —推文中包含的任何影象的URL

      6)replies_count -在推文上的回覆數量

      8)likes_count —在推文上的喜歡次數

      我們還可以看到photos資料的格式有些奇怪。

      使用np.where()新增具有正確/錯誤條件的pandas列

      對於我們的分析,我們只想檢視帶有影象的推文是否獲得更多的互動,因此我們實際上不需要影象URL。讓我們嘗試建立一個名為的新列hasimage,該列將包含布林值- True如果該tweet包含影象,False則不包含影象。

      為此,我們將使用numpy的內建where()函式。此函式按順序接受三個引數:我們要測試的條件,條件為true時分配給新列的值以及條件為false時分配給新列的值。看起來像這樣:

      在我們的資料中,我們可以看到沒有影象的推文始終[]在該photos列中具有值。我們可以使用資訊並np.where()建立新列hasimage,如下所示:

      在上方,我們可以看到我們的新列已新增到我們的資料集,並且已正確標記了tweet,其中包括影象為True,其他影象為False。

      現在我們有了hasimage專欄,讓我們快速製作幾個新的DataFrame,一個用於所有影象推文,一個用於所有無影象推文。我們將使用布林過濾器進行此操作:

      現在,我們已經建立了那些,我們可以使用內建的數學函式.mean()來快速比較每個DataFrame中的推文。

      我們將使用print()語句使結果更易於閱讀。我們還需要記住使用str()來將.mean()計算結果轉換為字串,以便可以在我們的列印語句中使用它:

      新增條件更復雜的pandas專欄

      這種方法效果很好,但是如果我們想新增一個條件更復雜的新列(超出True和False的條件)怎麼辦?

      例如,為了更深入地研究這個問題,我們可能要建立一些互動性“層”,並評估到達每個層的推文所佔的百分比。為了簡單起見,讓我們使用Likes來衡量互動性,並將tweet分為四個層次:

      1)tier_4 -2個或更少的喜歡

      2)tier_3 — 3-9個贊

      3)tier_2 — 10-15個贊

      4)tier_1 — 16個贊

      為此,我們可以使用稱為的函式np.select()。我們給它兩個引數:一個條件列表,以及一個我們想要分配給新列中每一行的值的對應列表。

      這意味著順序很重要:如果conditions滿足列表中的第一個條件,則列表中的第一個值values將分配給該行的新列。大資料分析使用numpy在pandas dataframe上新增列https://www.aaa-cg.com.cn/data/2376.html如果滿足第二個條件,則將分配第二個值,等等。

      讓我們看一下它在Python程式碼中的外觀:

      太棒了!我們建立了另一個新列,該列根據我們的(雖然有些武斷)層排名系統對每個tweet進行了分類。

      現在,我們可以使用它來回答有關我們的資料集的更多問題。例如:1級和4級推文中有多少百分比具有影象?

      儘管這是一個非常膚淺的分析,但我們已經在這裡實現了我們的真正目標:根據有關現有列中值的條件語句向pandas DataFrames新增列。

      當然,這是可以以多種方式完成的任務。np.where()而np.select()只是許多潛在的兩種方法。

    https://www.toutiao.com/i6846264263237960204/

  • 2 # 0詩意江湖0

    一、區別

    Numpy:是數值計算的擴充套件包,它能高效處理N維陣列,複雜函式,線性代數.

    Panadas:是做資料處理。市python的一個數據分析包,

    二、簡介

    1)NumPy:N維陣列容器

    Numpy專門針對ndarray的操作和運算進行了設計,所以陣列的儲存效率和輸入輸出效能遠優於Python中的巢狀列表,陣列越大,Numpy的優勢就越明顯。Numpy系統是Python的一種開源的數值計算擴充套件。這種工具可用來儲存和處理大型矩陣,比Python自身的巢狀列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。據說NumPy將Python相當於變成一種免費的更強大的MatLab系統。

    1.ndarray的優勢

    NumPy提供了一個N維陣列型別ndarray,它描述了相同型別的“items”的集合。

    一、記憶體塊風格:

    這是因為ndarray中的所有元素的型別都是相同的,而Python列表中的元素型別是任意的,所以ndarray在儲存元素時記憶體可以連續,而python原生lis就t只能透過定址方式找到下一個元素,這雖然也導致了在通用效能方面Numpy的ndarray不及Python原生list,但在科學計算中,Numpy的ndarray就可以省掉很多迴圈語句,程式碼使用方面比Python原生list簡單的多。

    二、ndarray支援並行化運算(向量化運算)

    三、Numpy底層使用C語言編寫,內部解除了GIL(全域性直譯器鎖),其對陣列的操作速度不受Python直譯器的限制,效率遠高於純Python程式碼。

    2.Pandas:表格容器

    pansdas是基於Numpy的一種工具,該工具是為了解決資料分析任務而建立的,。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量快速便捷地處理資料的函式和方法。使Python成為強大而高效的資料分析環境的重要因素之一。

  • 3 # 共享技術

    Numpy是以矩陣為基礎的數字計算模組,純數學的。

    Pandas提供供了一套資料結構,並提供計算介面,可以用Numpy方式進行計算.

  • 4 # 良婷

    兩者都是資料科學領域最常用的python庫, 都提供比原生python程式碼更加高效能的資料結構與分析寫法。兩者主要區別是numpy主要提供把資料包裝成多維陣列且在此之上可進行各種矩陣向量或張量的運算的功能,而pandas是把類似Excel spreadsheet的表格資料包裝成叫dataframe的格式,並且提供了豐富的資料操作功能

  • 5 # 科技少年星

    NumPy中的ndarray用於處理多維數值型陣列,重點在於進行數值運算,無索引

    *Pandas中的Series類似於DataFrame的子集,DataFrame中的每一列都可以看作是一個Series,有索引,方便進行資料的查詢,篩選,所以Pandas重點在於進行資料分析

    在數學與統計方法上,NumPy中的ndarray只能進行數值型統計,而Pandas中的DataFrame既可以進行數值型,也可以進行非數值型統計。基於可以容納不同的資料型別而定

    1.NumPy

    數值型,重點在於進行矩陣運算

    N維陣列容器,Numpy是以矩陣為基礎的數學計算模組。

    Numpy專門針對ndarray的操作和運算進行了設計,所以陣列的儲存效率和輸入輸出效能遠優於Python中的巢狀列表,陣列越大,Numpy的優勢就越明顯。Numpy系統是Python的一種開源的數值計算擴充套件。這種工具可用來儲存和處理大型矩陣,比Python自身的巢狀列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。

    ndarray

    所有元素的型別相同,儲存元素時記憶體可以連續;Python裡list中的元素型別任意,只能透過定址方式找到下一個元素

    ndarray矩陣結構與matlab或者C++或者fortran都很不一樣,沒有行優先或者列優先的概念

    ndarray支援並行化運算(向量化運算),類似於Matlab

    Numpy底層使用C語言編寫,內部解除了GIL(全域性直譯器鎖),其對陣列的操作速度不受Python直譯器的限制,效率遠高於純Python程式碼

    2.Pandas

    多資料型別,重點在於進行資料分析

    pansdas是基於Numpy的一種工具,該工具是為了解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量快速便捷地處理資料的函式和方法。使Python成為強大而高效的資料分析環境的重要因素之一。

    1

    Series

    參看書:Series是一種類似於一維陣列的物件,它由一組資料(各種NumPy資料型別)以及一組與之相關的資料標籤(即索引)組成。**小規模資料**

    1

    類似於一維陣列,索引物件的資料型別是一致的

    有了索引標籤,方便實際問題中進行資訊提取與篩選

    python字典型別的資料可以直接給Series物件

    Series可以運用ndarray或字典的幾乎所有索引操作和函式,融合了字典和ndarray的優點。

    屬性 說明

    values 獲取陣列

    index 獲取索引

    name values的name

    index.name 索引的name

    DataFrame

    DataFrame就是按照column和index組織起來的資料集合,類似於excel表格,也類似於基本的database結構。DataFrame是一個表格型的資料結構,它含有一組有序的列,每列可以是不同的值型別(數值、字串、布林值等)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引)。

    1

    DataFrame範例

    year state pop debt

    one 2000 Ohio 1.5 16.5

    two 2001 Ohio 1.7 16.5

    three 2002 Ohio 3.6 16.5

    four 2001 Nevada 2.4 16.5

    five 2002 Nevada 2.9 16.5

    six 2003 Nevada 3.2 16.5

    Series類似於DataFrame的子集,從上表可以看出,每一列都對應這一個Series

  • 中秋節和大豐收的關聯?
  • 為什麼世界上只有人類是有“智慧”的?