Hướng dẫn dùng grouping python python
Hỏi lúc:
5 tháng trước
Trả lời:
0
Lượt xem:
183
Pandas GroupBy là một hàm mạnh mẽ và linh hoạt trong Python. Nó cho phép bạn chia dữ liệu của mình thành các nhóm riêng biệt để thực hiện các phép tính nhằm phân tích tốt hơn, cũng hoàn toàn tương tự như groupby trong SQL. Show
Nội dung chính
Có thể bạn quan tâmNội dung chính
Hãy để tôi lấy một ví dụ để giải thích rõ hơn về điều này. Giả sử chúng ta có một file Sales.xlsx tổng hợp các đơn hàng trong ngày và chúng ta muốn xem mặt hàng nào có doanh số cao nhất, thấp nhất trong ngày (cột order) thì sẽ làm như sau. Để làm tất cả các bước trên trong python chỉ cần một câu lệnh groupby đơn giản.¶Trước hết cần load dữ liệu file Sales lên: import pandas as pd Sales = pd.read_excel('Sales.xlsx') Sales
Sau đó dùng một câu lệnh groupby đơn giản để nhóm dữ liệu theo cột 'order' # groupby('order') là cột tiêu chí mà chúng ta muốn nhóm dữ liệu theo tiêu chí đó, có thể có một hoặc nhiều tiêu chí # agg({'ext price': 'sum'}) là cột dữ liệu mà chúng ta đang muốn nhóm, và nhóm theo kiểu lấy tổng (sum) Sales_grouped = Sales.groupby(by='order').agg({'ext price': 'sum'}) Sales_grouped
Nếu dữ liệu lớn có thể sắp xếp theo thứ tự tăng hoặc giảm dần để dễ đánh giá # sort_values(by='ext price', ascending=True) lệnh sắp xếp dữ liệu theo cột 'ext price' theo thứ tự tăng dần (ascending=True), nếu giảm dần thì (ascending=False) Sales_grouped = Sales.groupby('order',group_keys=False).agg({'ext price': 'sum'}).sort_values(by='ext price', ascending=True) Sales_grouped
Hàm groupby trong pandas còn có nhiều tham số khác để bạn có thể tùy chỉnh:¶DataFrame.groupby(by=None, level=None, as_index=True, sort=True, dropna=True)
# Tạo Dataframe arrays = [['Chim ưng', 'Chim ưng', 'Vẹt', 'Vẹt'], ['Được nuôi', 'Hoang dã','Được nuôi', 'Hoang dã']] index = pd.MultiIndex.from_arrays(arrays, names=('Loài', 'Môi trường sống')) df = pd.DataFrame({'Vận tốc tối đa (km/h)': [390., 350., 30., 20.]}, index=index) df
# Tính vận tốc trung bình của từng loài df.groupby(level='Loài').mean()
# Tính vận tốc trung bình theo môi trường sống # level 1 tương ứng với 'Môi trường sống' df.groupby(level=1).mean()
# Tạo Dataframe array = [[1, 2, 3], [1, None, 4], [2, 1, 3], [1, 2, 2]] df = pd.DataFrame(array, columns=["a", "b", "c"]) df
# dropna mặc định = True, nên nó sẽ loại bỏ hàng có giá trị NaN df.groupby(by=["b"]).sum() # Thử với dropna=False df.groupby(by=["b"], dropna=False).sum()
Nguồn phát hành: ERX VN Bài viết liên quanLiên hệTIN NỔI BẬTKhông tìm thấy dữ liệu |