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

Pandas GroupBy – Đếm số lần xuất hiện của mỗi tổ hợp


Để nhóm các cột và đếm số lần xuất hiện của mỗi tổ hợp trong Pandas, ta sử dụng DataFrame.groupby() kết hợp với size(). Phương thức groupby() tách DataFrame thành các nhóm.

Trước hết, nhập thư viện pandas với bí danh pd:

import pandas as pd

Khởi tạo dữ liệu danh sách:

# khởi tạo dữ liệu
mylist = {'Car': ['BMW', 'Mercedes', 'Lamborgini', 'Audi', 'Mercedes', 'Porsche', 'RollsRoyce', 'BMW'],
          'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Bangalore', 'Hyderabad', 'Mumbai', 'Mumbai', 'Delhi'],
          'Sold': [95, 80, 80, 75, 90, 90, 95, 50]}

Tạo DataFrame:

# DataFrame
dataFrame = pd.DataFrame(mylist, columns=['Car', 'Place', 'Sold'])

Sử dụng groupby() để đếm số lần xuất hiện với size():

print("Đang đếm số lần xuất hiện...")
res = dataFrame.groupby(['Car', 'Place']).size()

Mã hoàn chỉnh đếm số lần xuất hiện của mỗi tổ hợp:

Ví dụ

# nhập thư viện
import pandas as pd
# khởi tạo dữ liệu
mylist = {'Car': ['BMW', 'Mercedes', 'Lamborgini', 'Audi', 'Mercedes', 'Porsche', 'RollsRoyce', 'BMW'],
          'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Bangalore', 'Hyderabad', 'Mumbai', 'Mumbai', 'Delhi'],
          'Sold': [95, 80, 80, 75, 90, 90, 95, 50]}
# DataFrame
dataFrame = pd.DataFrame(mylist, columns=['Car', 'Place', 'Sold'])
print(dataFrame)
print("Đang đếm số lần xuất hiện...")
res = dataFrame.groupby(['Car', 'Place']).size()
# Hiển thị số lần xuất hiện
print(res)

Kết quả

Đoạn mã trên cho ra kết quả sau:

    Car      Place  Sold
0   BMW      Delhi    95
1   Mercedes Hyderabad 80
2   Lamborgini Chandigarh 80
3   Audi     Bangalore 75
4   Mercedes Hyderabad 90
5   Porsche  Mumbai    90
6   RollsRoyce Mumbai   95
7   BMW      Delhi     50
Đang đếm số lần xuất hiện...
Car       Place
Audi      Bangalore    1
BMW       Delhi        2
Lamborgini Chandigarh   1
Mercedes  Hyderabad    2
Porsche   Mumbai       1
RollsRoyce Mumbai      1
dtype: int64