Python - 使用 Numpy 对 Pandas 聚合进行去重计数


要进行去重计数,请在 Pandas 中使用 nunique。我们将对一列进行 groupby 分组,并使用 Numpy sum() 求和。

首先,导入必要的库 −

import pandas as pd
import numpy as np

创建一个有 3 列的数据框。这些列具有重复的值 −

dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Audi', 'BMW', 'Lexus', 'Lexus'],"Place": ['Delhi','Bangalore','Delhi','Chandigarh','Chandigarh'],"Units": [100, 150, 50, 110, 90]
   }
)

在使用 nunique 的聚合 agg() 中进行去重计数。对于计数总和,我们正在使用 numpy sum() −

dataFrame = dataFrame.groupby("Car").agg({"Units": np.sum, "Place": pd.Series.nunique})

示例

以下是代码 −

import pandas as pd
import numpy as np

dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Audi', 'BMW', 'Lexus', 'Lexus'],"Place": ['Delhi','Bangalore','Delhi','Chandigarh','Chandigarh'],"Units": [100, 150, 50, 110, 90]
   }
)

print"DataFrame ...\n",dataFrame

# count distinct in aggregation with nunique
dataFrame = dataFrame.groupby("Car").agg({"Units": np.sum, "Place": pd.Series.nunique})

print"\nUpdated DataFrame ...\n",dataFrame

输出

这将生成以下输出 −

DataFrame ...
     Car      Place   Units
0    BMW      Delhi    100
1   Audi  Bangalore    150
2    BMW      Delhi     50
3  Lexus Chandigarh    110
4  Lexus Chandigarh     90

Updated DataFrame ...
       Units   Place
Car
Audi    150       1
BMW     150       1
Lexus   200       1

更新日期: 2021 年 9 月 16 日

641 次浏览

开启您的职业生涯

通过完成课程获得认证

开始吧
广告