Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Đếm distinct (nunique) trong Pandas Aggregation với NumPy

Giới thiệu

Để đếm distinct (số giá trị duy nhất) trong aggregation Pandas, dùng pd.Series.nunique trong agg(). Kết hợp với np.sum để tính tổng cột khác.

Ví dụ minh họa

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)

# Groupby Car, agg: sum Units, nunique Place
dataFrame = dataFrame.groupby("Car").agg({"Units": np.sum, "Place": pd.Series.nunique})
print("\nDataFrame sau aggregation:")
print(dataFrame)

Kết quả đầu ra

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

DataFrame sau aggregation:
       Units  Place
Car
Audi     150      1
BMW      150      1
Lexus    200      1

Giải thích: BMW: Units sum=150, Place unique=1 (chỉ Delhi). Lexus: Units sum=200, Place unique=1 (chỉ Chandigarh). Audi: 150, 1.