Để 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