Pandas Groupby Average

Pandas Groupby Average



Khi chúng ta cộng hai hoặc nhiều giá trị với nhau và tổng của chúng được chia cho tổng số giá trị được cộng lại với nhau, kết quả là giá trị trung bình. Pandas Mean trả về giá trị trung bình của dữ liệu hoặc giá trị dọc theo một trục nhất định. Một chuỗi có giá trị trung bình trên một trục sẽ được pandas trả về nếu phương thức mean () được áp dụng cho khung dữ liệu. Gấu trúc trả về một giá trị số (số đơn) nếu “mean ()” được sử dụng trên một chuỗi. Các chức năng có thể được áp dụng cho các danh mục sau khi tạo các nhóm danh mục. Đó là một ý tưởng đơn giản nhưng là một kỹ thuật hiệu quả cao thường xuyên được áp dụng trong khoa học dữ liệu. Nó cho phép chúng tôi tạo bản tóm tắt dữ liệu cho từng nhóm, áp dụng các sửa đổi dành riêng cho nhóm và thực hiện lọc dữ liệu. Với hàm groupby (), đối tượng có thể được phân chia, một hàm có thể được áp dụng và sau đó các sản phẩm có thể được kết hợp với nhau. Các tập dữ liệu lớn có thể được nhóm với điều này và các hoạt động có thể được thực hiện trên các nhóm.

Làm thế nào để sử dụng phương thức groupby.mean () trong Pandas?

Để tính giá trị trung bình của khung dữ liệu hoặc giá trị trung bình của các cột cụ thể của khung dữ liệu, chúng ta có thể sử dụng hàm groupby.mean (). Chúng tôi sẽ trình bày cách sử dụng nó trong các ví dụ sau.







Ví dụ # 01: Xác định giá trị trung bình của một cột số nguyên đơn lẻ bằng cách nhóm dữ liệu của một cột đơn lẻ

Sử dụng hàm pd.DataFrame (), trước tiên chúng ta sẽ tạo một khung dữ liệu để chúng ta có thể chia dữ liệu của cột hoặc các cột của khung dữ liệu thành các nhóm và sau đó tìm giá trị trung bình của chúng. Trước khi tạo khung dữ liệu, chúng ta phải nhập mô-đun gấu trúc cùng với thư viện numpy.





Có thể thấy, chúng tôi đã tạo khung dữ liệu của mình bằng cách sử dụng từ điển gấu trúc. Chúng tôi có 3 cột trong khung dữ liệu df, tức là 'mặt hàng', 'nhà sản xuất' và 'số lượng'. Trong cột 'mục', chúng tôi đã lưu trữ các giá trị ('áo sơ mi', 'cà vạt', 'quần dài', 'áo sơ mi', 'cà vạt', 'quần dài', 'áo sơ mi', 'quần dài', 'quần dài', ' tie '), trong khi các cột' nhà sản xuất 'và' số lượng 'chứa các giá trị ('italy', 'france', 'china', 'france', 'china', 'italy', 'china', 'italy', lần lượt là 'france', 'china') và (13, 16, 21, 32, 26, 41, 24, 42, 12, 15). Hãy nhóm các giá trị trong cột nhà sản xuất và xác định giá trị số lượng trung bình cho từng nhà sản xuất riêng biệt.





Giá trị nhà sản xuất ‘china’ có giá trị đại lượng trung bình là 21,5, giá trị đại lượng trung bình cho ‘france’ là 20,0 và giá trị đại lượng trung bình cho ‘Ý’ là 32,0. Chúng ta cũng có thể chỉ định một chỉ mục cho đầu ra bằng cách sử dụng hàm reset_index với hàm groupby.mean ().



Ví dụ # 02: Tìm giá trị trung bình của một cột nổi đơn bằng cách nhóm dữ liệu của một cột duy nhất

Chúng ta đã thấy cách chúng ta có thể tìm giá trị trung bình của cột số nguyên sau khi nhóm dữ liệu. Bây giờ chúng ta hãy thử một cột kiểu dữ liệu khác như float. Khung dữ liệu có ít nhất một cột có giá trị float sẽ được tạo bằng hàm pd.DataFrame ().

Bằng cách đặt một từ điển bên trong pd.DataFrame (), chúng ta đã tạo một khung dữ liệu với ba cột. Cột 'tên' đang lưu trữ tên của một số người chơi ngẫu nhiên ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', 'Tony'), cột 'đội' đại diện cho đội mà mỗi người chơi thuộc về ('A', 'A', 'B', 'A', 'B', 'A', 'C', 'B ',' C ',' C ') và cột' height 'đang lưu trữ chiều cao của mỗi trình phát dưới dạng giá trị float (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Hãy nhóm dữ liệu trong cột 'nhóm' và xác định giá trị chiều cao trung bình cho từng giá trị 'nhóm' riêng biệt.

Bạn có thể thấy rằng giá trị chiều cao trung bình của các cầu thủ đội A là 5,65, trong khi chiều cao trung bình của các cầu thủ trong đội B và C lần lượt là 5,866 và 5,6.

Ví dụ # 03: Xác định giá trị trung bình của nhiều cột bằng hàm groupby.mean ()

Trong các ví dụ trước, chúng tôi đã xác định giá trị trung bình của một cột. Tuy nhiên, giá trị trung bình của nhiều cột cho mỗi nhóm cũng có thể được xác định. Hãy tạo khung dữ liệu có nhiều cột số, sau khi nhập gấu trúc và mô-đun số.

Trong khung dữ liệu mới được tạo, có ba cột với các nhãn 'tên', 'điểm' và 'phù hợp'. Tên cột có các giá trị dữ liệu dưới dạng một chuỗi ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), trong khi 'điểm số' và 'kết quả phù hợp' bao gồm dữ liệu số như (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) và (2, 3, 1, 2, 1, 3 , 4, 1, 2, 1). Bây giờ, hãy tìm giá trị trung bình của cột 'điểm' và 'khớp' sau khi nhóm dữ liệu của cột 'tên'. Hàm groupby.mean () sẽ được sử dụng cho việc này.

Có thể nhận thấy nhóm ‘Dany’ có số điểm trung bình là 2,66 trong 2,00 trận. Nhóm Jim có điểm trung bình là 2,75 và giá trị trung bình của các trận đã đấu là 1,75. Trong khi nhóm ‘Ron’ có giá trị điểm trung bình là 2,66 và giá trị trung bình của các trận đấu đã chơi là 2,33.

Trung bình của một nhóm danh mục theo đối tượng cũng có thể được tính bằng cách sử dụng phương thức agg (). Chúng tôi sẽ cung cấp giá trị trung bình dưới dạng đối số cho hàm agg (). Để tổng hợp bằng cách sử dụng một hoặc nhiều phép toán trên trục đã cho, chúng ta có thể sử dụng hàm agg ().

Đầu ra vẫn giống như trước đây.

Ví dụ # 04: Xác định giá trị trung bình của các cột cụ thể bằng cách nhóm nhiều cột

Trong các ví dụ 1, 2 và 3, chúng tôi đã nhóm các giá trị hoặc dữ liệu của một cột. Bây giờ chúng ta sẽ nhóm nhiều cột bằng cách sử dụng danh sách các nhãn cột bên trong hàm groupby (), và sau đó chúng ta sẽ tìm giá trị trung bình cho mỗi nhóm. Một từ điển ‘d’ sẽ được chuyển vào bên trong hàm pd.Dataframe () như một đầu vào để tạo khung dữ liệu.

Chúng tôi đã tạo khung dữ liệu cần thiết. Cột 'sports' đang lưu trữ tên của một số môn thể thao ('Cầu lông', 'bóng đá', 'quần vợt', 'bóng rổ', 'bóng đá', 'quần vợt', 'bóng rổ', 'bóng đá', 'Cầu lông', ' bóng rổ ',' bóng rổ ',' quần vợt '), tên các quốc gia (' Trung Quốc ',' Nga ',' Ý ',' Tây Ban Nha ',' Nga ',' Ý ',' Trung Quốc ',' Ý ',' Tây Ban Nha ',' Trung Quốc ',' Nga ',' Ý ') được lưu trữ trong cột' quốc gia '. Trong khi trong cột ‘win’, chúng tôi lưu trữ số trận thắng của mỗi quốc gia trong mỗi môn thể thao (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Hãy sử dụng hàm groupby.mean () để tìm giá trị trung bình của các giá trị cột 'win' bằng cách nhóm các cột 'sports' và 'country'.

Hàm đã xác định thành công giá trị trung bình của cột 'chiến thắng' cho mỗi môn thể thao trong nước. Có thể đặt lại khung dữ liệu được nhóm theo từng nhóm bằng cách sử dụng hàm reset_index (), hàm này cũng tạo ra một chỉ mục mới, tạo cho nó một cấu trúc khung dữ liệu thích hợp.

Chỉ mục được thêm vào cho mỗi hàng của khung dữ liệu. Để sắp xếp kết quả trong một bảng hấp dẫn, chúng ta cũng có thể sử dụng hàm pivot ().

Sự kết luận

Trong hướng dẫn này, chúng ta đã thảo luận về giá trị trung bình hoặc giá trị trung bình của các số và cách tìm giá trị trung bình của một cột cụ thể (một hoặc nhiều) sau khi nhóm cột hoặc các cột của khung dữ liệu. Chúng tôi đã triển khai một vài ví dụ trong bài viết này để hướng dẫn bạn cách xác định giá trị trung bình của một số nguyên hoặc cột float bằng cách nhóm dữ liệu của một cột duy nhất; cách xác định giá trị trung bình của nhiều cột bằng cách sử dụng hàm groupby.mean (); và cả cách xác định giá trị trung bình của các cột cụ thể bằng cách nhóm nhiều cột.