自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

5個例子比較Python Pandas 和R data.table

大數(shù)據(jù) 數(shù)據(jù)分析
Python和R是數(shù)據(jù)科學生態(tài)系統(tǒng)中的兩種主要語言。它們都提供了豐富的功能選擇并且能夠加速和改進數(shù)據(jù)科學工作流程。

在這篇文章中,我們將比較Pandas 和data.table,這兩個庫是Python和R最長用的數(shù)據(jù)分析包。我們不會說那個一個更好,我們這里的重點是演示這兩個庫如何為數(shù)據(jù)處理提供高效和靈活的方法。

[[394697]]

我們將介紹的示例是常見的數(shù)據(jù)分析和操作操作。因此,您可能會經(jīng)常使用它們。

我們將使用Kaggle上提供的墨爾本住房數(shù)據(jù)集作為示例。我將使用谷歌Colab(Pandas )和RStudio(data.table)作為開環(huán)境。讓我們首先導入庫并讀取數(shù)據(jù)集。

 

  1. # pandas  
  2. import pandas as pd  
  3. melb = pd.read_csv("/content/melb_data.csv")  
  4.  
  5. # data.table  
  6. library(data.table)  
  7. melb <- fread("datasets/melb_data.csv"

 

示例1

第一個示例是關于基于數(shù)據(jù)集中的現(xiàn)有列創(chuàng)建新列。這是特征工程過程中常見的操作。這兩個庫都提供了完成此任務的簡單方法。

 

  1. # pandas  
  2. melb["Price_per_area"] = melb["Price"] / melb["Landsize"]  
  3.  
  4. # data.table  
  5. melb[, Price_per_area := Price / Landsize] 

 

 

5個例子比較Python Pandas 和R data.table

 

示例2

對于第二個示例,我們通過應用幾個過濾器創(chuàng)建原始數(shù)據(jù)集的子集。這個子集包括價值超過100萬美元,類型為h的房子。

 

  1. # pandas  
  2. subset = melb[(melb.Price > 1000000) & (melb.Type == "h")]  
  3.  
  4. # data.table  
  5. subset <- melb[Price > 1000000 & Type == "h"

 

對于pandas,我們提供dataframe的名稱來選擇用于過濾的列。另一方面,data.table僅使用列名就足夠了。

示例3

在數(shù)據(jù)分析中使用的一個非常常見的函數(shù)是groupby函數(shù)。它允許基于一些數(shù)值度量比較分類變量中的不同值。

例如,我們可以計算出不同地區(qū)的平均房價。為了使示例更復雜一些,我們還對房子類型應用一個過濾器。

 

  1. # pandas  
  2. melb[melb.Type == "u"].groupby("Regionname").agg(  
  3. avg_price = ("Price""mean")  
  4. )  
  5.  
  6. # data.table  
  7. melb[Type == "u", .(avg_price = mean(Price)), by="Regionname"

 

 

5個例子比較Python Pandas 和R data.table

 

pandas使用groupby函數(shù)執(zhí)行這些操作。對于data.table,此操作相對簡單一些,因為我們只需要使用by參數(shù)即可。

示例4

讓我們進一步討論前面的例子。我們求出了房屋的平均價格,但不知道每個地區(qū)的房屋數(shù)量。

這兩個庫都允許在一個操作中應用多個聚合。我們還可以按升序或降序對結果進行排序。

 

  1. # pandas  
  2. melb[melb.Type == "u"].groupby("Regionname").agg(  
  3. avg_price = ("Price""mean"),  
  4. number_of_houses = ("Price""count")  
  5. ).sort_values(by="avg_price", ascending=False)  
  6.  
  7. # data.table  
  8. > melb[  
  9. Type == "u",  
  10. .(avg_price = mean(Price), number_of_houses=.N),  
  11. by="Regionname"  
  12. ][order(-avg_price)] 

 

 

5個例子比較Python Pandas 和R data.table

 

我們使用計數(shù)函數(shù)來獲得每組房屋的數(shù)量。”。N”可作為data.table中的count函數(shù)。

默認情況下,這兩個庫都按升序對結果排序。排序規(guī)則在pandas中的ascending參數(shù)控制。 data.table中使用減號獲得降序結果。

示例5

在最后一個示例中,我們將看到如何更改列名。例如,我們可以更改類型和距離列的名稱。

類型:HouseType

距離:DistanceCBD

數(shù)據(jù)集中的distance列表示到中央商務區(qū)(CBD)的距離,因此最好在列名中提供該信息。

 

  1. # pandas  
  2. melb.rename(columns={"Type""HouseType",  
  3. "Distance""DistanceCBD"},  
  4. inplace=True)  
  5.  
  6. # data.table  
  7. setnames(melb,  
  8. c("Type""Distance"),  
  9. c("HouseType""DistanceCBD")) 

 

對于熊貓,我們傳遞了一個字典,該字典將更改映射到rename函數(shù)。 inplace參數(shù)用于將結果保存在原始數(shù)據(jù)幀中。

對于data.table,我們使用setnames函數(shù)。 它使用三個參數(shù),分別是表名,要更改的列名和新列名。

總結

我們比較了pandas和data.table在數(shù)據(jù)分析操作過程中常見的5個示例。這兩個庫都提供了簡單有效的方法來完成這些任務。

在我看來,data.table比pandas簡單一點。

 

需要指出的是,我們在本文中所做的示例只代表了這些庫功能的很小一部分。它們提供了許多函數(shù)和方法來執(zhí)行更復雜的操作。

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2022-10-08 13:29:19

Pandasgroupby

2022-08-14 14:54:10

Pandas字符串數(shù)字類型

2018-01-02 09:44:37

2024-01-25 11:41:00

Python開發(fā)前端

2023-04-20 13:59:01

Pythonwhile循環(huán)的

2018-04-02 10:37:10

Linux命令size

2022-08-01 10:44:37

人工智能AI

2021-04-20 11:40:47

指針類型CPU

2009-10-13 14:33:00

2025-03-28 08:30:00

PythonPandasaxis

2018-01-15 14:07:16

Linux命令free

2023-03-14 08:02:14

靜態(tài)路由動態(tài)路由設備

2018-03-12 15:26:00

Linux命令tee

2020-07-26 00:29:54

物聯(lián)網(wǎng)智慧城市IOT

2009-06-11 14:48:48

jbpm工作流引擎jbpm例子

2018-05-05 07:18:52

機器學習線性代數(shù)深度學習

2020-08-14 10:57:49

開發(fā)技能代碼

2009-06-18 15:53:37

Hibernate B

2022-02-25 17:02:38

自動化工作轉型

2024-10-28 17:06:50

點贊
收藏

51CTO技術棧公眾號