5个例子比较Python Pandas 和R data.table

来源:deephub 今日头条 日期:2021-04-21

在这篇文章中,我们将比较Pandas 和data.table,这两个库是Python和R最长用的数据分析包。我们不会说那个一个更好,我们这里的重点是演示这两个库如何为数据处理提供高效和灵活的方法。

我们将介绍的示例是常见的数据分析和操作操作。因此,您可能会经常使用它们。

我们将使用Kaggle上提供的墨尔本住房数据集作为示例。我将使用谷歌Colab(Pandas )和RStudio(data.table)作为开环境。让我们首先导入库并读取数据集。

  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

第一个示例是关于基于数据集中的现有列创建新列。这是特征工程过程中常见的操作。这两个库都提供了完成此任务的简单方法。

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

示例2

对于第二个示例,我们通过应用几个过滤器创建原始数据集的子集。这个子集包括价值超过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

在数据分析中使用的一个非常常见的函数是groupby函数。它允许基于一些数值度量比较分类变量中的不同值。

例如,我们可以计算出不同地区的平均房价。为了使示例更复杂一些,我们还对房子类型应用一个过滤器。

  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"

pandas使用groupby函数执行这些操作。对于data.table,此操作相对简单一些,因为我们只需要使用by参数即可。

示例4

让我们进一步讨论前面的例子。我们求出了房屋的平均价格,但不知道每个地区的房屋数量。

这两个库都允许在一个操作中应用多个聚合。我们还可以按升序或降序对结果进行排序。

  1. # pandas  
  2. melb[melb.Type == "u"].groupby("Regionname").agg(  
  3. avg_price = ("Price""mean"),  
  4. number_of_houses = ("Price"
    A+
声明:本文转载自其它媒体,转载目的在于传递更多信息,并不代表赞同其观点和对其真实性负责。