Sử dụng nhóm pythonby python

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

Nội dung chính Show

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
 accountorderext price038308010001235. 83138308010001232. 32238308010001107. 973412290100052679. 36441229010005286. 02541229010005832. 956412290100053472. 04741229010005915. 128218895100063061. 12921889510006518. 651021889510006216. 901121889510006-72. 18

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
 ext priceorder 10001576. 12100058185. 49100063724. 49

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
 ext priceorder 10001576. 12100063724. 49100058185. 49

Hàm groupby trong pandas còn có nhiều tham số khác để bạn có thể tùy chỉnh. ¶

Khung dữ liệu. groupby(by=None, level=None, as_index=True, sort=True, dropna=True)

  • qua. chỉ định tiêu chí, đối tượng cần nhóm, như cột 'order' trong ví dụ trên
  • cấp độ. kiểu số nguyên hoặc chuỗi. Nếu trục là MultiIndex (phân cấp), thì nhóm theo các cấp cụ thể
  • as_index. loại bool, mặc định=True. Biến cột tiêu chí thành Index (chỉ số), as_index = False thì giữ nguyên index cũ

    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

    Nội dung chính Show

    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
     accountorderext price038308010001235. 83138308010001232. 32238308010001107. 973412290100052679. 36441229010005286. 02541229010005832. 956412290100053472. 04741229010005915. 128218895100063061. 12921889510006518. 651021889510006216. 901121889510006-72. 18

    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
     ext priceorder 10001576. 12100058185. 49100063724. 49

    tài khoản

    # 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
     ext priceorder 10001576. 12100063724. 49100058185. 49

    tài khoản

    trật tự

    • giá mở rộng. chỉ định tiêu chí, đối tượng cần nhóm, như cột 'order' trong ví dụ trên
    • Sau đó dùng một câu lệnh groupby đơn giản để nhóm dữ liệu theo cột 'order'. kiểu số nguyên hoặc chuỗi. Nếu trục là MultiIndex (phân cấp), thì nhóm theo các cấp cụ thể
    • 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á. loại bool, mặc định=True. Biến cột tiêu chí thành Index (chỉ số), as_index = False thì giữ nguyên index cũ
    • Hàm groupby trong pandas còn có nhiều tham số khác để bạn có thể tùy chỉnh. ¶. loại bool, mặc định=True. Sắp xếp cột tiêu chí theo thứ tự
    • Khung dữ liệu. groupby(by=None, level=None, as_index=True, sort=True, dropna=True). loại bool, mặc định=True. Loại bỏ những hàng và cột có giá trị Nan