Python – Count distinct in Pandas Aggregation with Numpy
使用 Pandas 中的 nunique 计算不同值的数量。我们将对一列进行分组,同时使用 Numpy 的 sum() 来查找和。
首先,导入所需的库−
import pandas as pd
import numpy as np
创建一个有 3 列的 DataFrame。这些列具有重复值−
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})
更多Pandas文章,请阅读:Pandas教程
示例
下面是代码−
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