Pandas GroupBy - Tìm hiểu thông tin về Pandas Group
11/10/2023 01:23
Groupby là một khái niệm khá đơn giản. Chúng ta có thể tạo một nhóm các danh mục và áp dụng một hàm cho các danh mục đó.
Groupby là một khái niệm khá đơn giản. Chúng ta có thể tạo một nhóm các danh mục và áp dụng một hàm cho các danh mục đó. Đó là một khái niệm đơn giản nhưng là một kỹ thuật cực kỳ có giá trị được sử dụng rộng rãi trong khoa học dữ liệu. Trong các dự án khoa học dữ liệu thực tế, bạn sẽ phải xử lý một lượng lớn dữ liệu và thử đi thử lại nhiều thứ, vì vậy để đạt hiệu quả, chúng tôi sử dụng khái niệm Groupby. Khái niệm Groupby thực sự quan trọng vì nó có khả năng tổng hợp dữ liệu hiệu quả, cả về hiệu suất lẫn số lượng mã đều rất tuyệt vời. Groupby chủ yếu đề cập đến một quá trình bao gồm một hoặc nhiều bước sau:
- Tách: Đó là quá trình chúng tôi chia dữ liệu thành nhóm bằng cách áp dụng một số điều kiện trên tập dữ liệu.
- Áp dụng: Đó là một quá trình trong đó chúng tôi áp dụng một chức năng cho từng nhóm một cách độc lập
- Kết hợp : Đó là một quá trình trong đó chúng tôi kết hợp các bộ dữ liệu khác nhau sau khi áp dụng nhóm và kết quả thành cấu trúc dữ liệu
Hình ảnh sau đây sẽ giúp hiểu được một quá trình liên quan đến khái niệm Groupby.
1. Nhóm các giá trị duy nhất từ cột Đội
2. Bây giờ có một nhóm cho mỗi nhóm
3. Bỏ các dữ liệu khác vào thùng
4. Áp dụng hàm vào cột trọng lượng của mỗi thùng.
Chia dữ liệu thành các nhóm
Tách là quá trình chúng ta chia dữ liệu thành một nhóm bằng cách áp dụng một số điều kiện trên tập dữ liệu. Để phân chia dữ liệu, chúng tôi áp dụng một số điều kiện nhất định trên tập dữ liệu. Để phân chia dữ liệu, chúng ta sử dụng hàm groupby(), hàm này dùng để chia dữ liệu thành các nhóm dựa trên một số tiêu chí. Các đối tượng Pandas có thể được phân chia trên bất kỳ trục nào của chúng. Định nghĩa trừu tượng của việc nhóm là cung cấp ánh xạ nhãn tới tên nhóm. Bộ dữ liệu Pandas có thể được chia thành bất kỳ đối tượng nào của chúng. Có nhiều cách để phân chia dữ liệu như:
- obj.groupby(khóa)
- obj.groupby(key, axis=1)
- obj.groupby([key1, key2])
Lưu ý: Trong phần này, chúng tôi coi các đối tượng được nhóm là các khóa.
Nhóm dữ liệu bằng một khóa:
Để nhóm dữ liệu bằng một khóa, chúng ta chỉ truyền một khóa làm đối số trong hàm nhóm.
- Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = { 'Name' :[ 'Jai' , 'Anuj' , 'Jai' , 'Princi' , 'Gaurav' , 'Anuj' , 'Princi' , 'Abhi' ], 'Age' :[ 27 , 24 , 22 , 32 , 33 , 36 , 27 , 32 ], 'Address' :[ 'Nagpur' , 'Kanpur' , 'Allahabad' , 'Kannuaj' , 'Jaunpur' , 'Kanpur' , 'Allahabad' , 'Aligarh' ], 'Qualification' :[ 'Msc' , 'MA' , 'MCA' , 'Phd' , 'B.Tech' , 'B.com' , 'Msc' , 'MA' ]} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) print (df) |
Bây giờ chúng ta nhóm dữ liệu Tên bằng hàm groupby().
- Python3
# using groupby function # with one key df.groupby( 'Name' ) print (df.groupby( 'Name' ).groups) |
Đầu ra :
Bây giờ chúng tôi in các mục đầu tiên trong tất cả các nhóm được hình thành.
- Python3
# applying groupby() function to # group the data on Name value. gk = df.groupby( 'Name' ) # Let's print the first entries # in all the groups formed. gk.first() |
Đầu ra :
Nhóm dữ liệu bằng nhiều khóa :
Để nhóm dữ liệu bằng nhiều khóa, chúng ta chuyển nhiều khóa trong chức năng nhóm.
- Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = { 'Name' :[ 'Jai' , 'Anuj' , 'Jai' , 'Princi' , 'Gaurav' , 'Anuj' , 'Princi' , 'Abhi' ], 'Age' :[ 27 , 24 , 22 , 32 , 33 , 36 , 27 , 32 ], 'Address' :[ 'Nagpur' , 'Kanpur' , 'Allahabad' , 'Kannuaj' , 'Jaunpur' , 'Kanpur' , 'Allahabad' , 'Aligarh' ], 'Qualification' :[ 'Msc' , 'MA' , 'MCA' , 'Phd' , 'B.Tech' , 'B.com' , 'Msc' , 'MA' ]} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) print (df) |
Bây giờ chúng tôi nhóm dữ liệu “Tên” và “Trình độ chuyên môn” lại với nhau bằng nhiều khóa trong chức năng nhóm.
- Python3
# Using multiple keys in # groupby() function df.groupby([ 'Name' , 'Qualification' ]) print (df.groupby([ 'Name' , 'Qualification' ]).groups) |
Đầu ra :