Làm thế nào để bạn tạo một bảng tổng hợp trong python?

Bạn có thể quen thuộc với các bảng tổng hợp trong Excel để dễ dàng tạo thông tin chi tiết về dữ liệu của mình. Trong bài đăng này, bạn sẽ tìm hiểu cách tạo bảng tổng hợp trong Python và Pandas bằng phương pháp

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
1. Bài đăng này sẽ cung cấp cho bạn một cái nhìn tổng quan đầy đủ về cách sử dụng hàm
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
1

Có thể nhanh chóng tóm tắt dữ liệu là một kỹ năng quan trọng để có thể hiểu được dữ liệu của bạn trông như thế nào. Chức năng này khá giống với phương pháp

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
3 cũng có sẵn trong Pandas, nhưng cung cấp nhiều tùy chỉnh hơn đáng kể, như chúng ta sẽ thấy sau trong bài đăng này

Đến cuối hướng dẫn này, bạn sẽ học được

  • Cách sử dụng hàm
    # Creating your first Pandas pivot table
    pivot = pd.pivot_table[
        data=df,
        index='Region'
    ]
    print[pivot]
    
    # Returns:
    #              Sales      Units
    # Region                       
    # East    408.182482  19.732360
    # North   438.924051  19.202643
    # South   432.956204  20.423358
    # West    452.029412  19.29411
    4 và các tham số của nó biểu thị điều gì
  • Cách nhóm dữ liệu bằng chỉ mục hoặc đa chỉ mục
  • Cách xoay bảng hơn nữa bằng cách sử dụng các chỉ mục và cột
  • Cách chỉ định và tạo các phương thức tổng hợp của riêng bạn
  • Cách tính tổng và xử lý dữ liệu bị thiếu

Mục lục

  • Hướng dẫn bằng video về Python Pivot Tables
  • Cách xây dựng bảng Pivot trong Python
  • Đang tải một Khung dữ liệu Pandas mẫu
  • Tạo Pivot Table trong Pandas
  • Chỉ tổng hợp một số cột nhất định trong Pandas Pivot Table
  • Làm việc với các phương thức tổng hợp trong bảng Pandas Pivot
  • Các bảng Pivot Pandas phức tạp hơn
  • Tùy chỉnh Pandas Pivot Tables
  • Lọc bảng Python Pivot
  • bài tập
  • Kết luận và tóm tắt
  • Tài nguyên bổ sung

Hướng dẫn bằng video về Python Pivot Tables

Cách xây dựng bảng Pivot trong Python

Bảng tổng hợp là một bảng thống kê giúp tóm tắt dữ liệu của một bảng lớn hơn bằng cách “xoay vòng” dữ liệu đó. Microsoft Excel đã phổ biến bảng tổng hợp, nơi chúng được gọi là PivotTable. Pandas cấp quyền truy cập để tạo bảng tổng hợp trong Python bằng hàm

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
1. Hàm có các tham số mặc định sau

# The syntax of the .pivot_table[] function
import pandas as pd
pd.pivot_table[
    data=,
    values=None, 
    index=None, 
    columns=None, 
    aggfunc='mean', 
    fill_value=None, 
    margins=False, 
    dropna=True, 
    margins_name='All', 
    observed=False,
    sort=True
] 

Phương thức lấy một DataFrame và sau đó cũng trả về một DataFrame. Bảng bên dưới cung cấp thông tin tổng quan về các tham số khác nhau có sẵn trong hàm

Tham số Giá trị mặc định Mô tả_______06Khung dữ liệu để xoay vòng
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
7Cột để tổng hợp [nếu trống, sẽ tổng hợp tất cả các giá trị số]
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
8Cột hoặc các cột để nhóm dữ liệu theo. Một cột có thể là một chuỗi, trong khi nhiều cột phải là một danh sách các chuỗi
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
9Cột hoặc các cột để nhóm dữ liệu theo. Một cột có thể là một chuỗi, trong khi nhiều cột phải là một danh sách các chuỗi
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
00'nghĩa là'Một hàm hoặc danh sách các hàm để tổng hợp dữ liệu theo
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
01Giá trị để thay thế các giá trị bị thiếu bằng
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
02SaiThêm một hàng và cột để có tổng số
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
03TrueĐể chọn không bao gồm các cột có tất cả các mục nhập

Bây giờ bạn đã hiểu về các tham số khác nhau có sẵn trong hàm, hãy tải tập dữ liệu của chúng tôi và bắt đầu khám phá dữ liệu của chúng tôi

Đang tải một Khung dữ liệu Pandas mẫu

Để làm theo hướng dẫn này, hãy tải một Khung dữ liệu Pandas mẫu. Chúng tôi có thể tải DataFrame từ tệp được lưu trữ trên trang GitHub của tôi, sử dụng chức năng

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
08. Sau đó, chúng ta có thể in ra năm bản ghi đầu tiên của tập dữ liệu bằng phương pháp
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
09

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
0

Dựa trên đầu ra của năm hàng đầu tiên được hiển thị ở trên, chúng tôi có thể thấy rằng chúng tôi có năm cột để làm việc với

Tên cột Mô tảNgàyNgày giao dịchKhu vựcKhu vực giao dịchLoạiLoại quần áo đã bánĐơn vịSố lượng đơn vị đã bánDoanh sốChi phí bánMô tả các cột trong tập dữ liệu của chúng tôi

Bây giờ chúng ta có thêm một chút ngữ cảnh xung quanh dữ liệu, hãy khám phá cách tạo bảng tổng hợp đầu tiên của chúng ta trong Pandas

Tạo Pivot Table trong Pandas

Hãy tạo bảng tổng hợp Pandas đầu tiên của bạn. Ở mức tối thiểu, chúng tôi phải chuyển một số dạng khóa nhóm, bằng cách sử dụng tham số

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
8 hoặc
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
9. Trong các ví dụ bên dưới, chúng tôi đang sử dụng hàm Pandas, thay vì hàm DataFrame. Vì điều này, chúng ta cần chuyển đối số
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
6. Nếu chúng tôi áp dụng trực tiếp phương thức cho DataFrame, điều này sẽ được ngụ ý

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411

Hãy phá vỡ những gì đã xảy ra ở đây

  1. Chúng tôi đã tạo một DataFrame mới có tên là
    # Creating your first Pandas pivot table
    pivot = pd.pivot_table[
        data=df,
        index='Region'
    ]
    print[pivot]
    
    # Returns:
    #              Sales      Units
    # Region                       
    # East    408.182482  19.732360
    # North   438.924051  19.202643
    # South   432.956204  20.423358
    # West    452.029412  19.29411
    53, được tạo bằng hàm
    # Creating your first Pandas pivot table
    pivot = pd.pivot_table[
        data=df,
        index='Region'
    ]
    print[pivot]
    
    # Returns:
    #              Sales      Units
    # Region                       
    # East    408.182482  19.732360
    # North   438.924051  19.202643
    # South   432.956204  20.423358
    # West    452.029412  19.29411
    54
  2. Chúng tôi đã chuyển vào DataFrame,
    # Creating your first Pandas pivot table
    pivot = pd.pivot_table[
        data=df,
        index='Region'
    ]
    print[pivot]
    
    # Returns:
    #              Sales      Units
    # Region                       
    # East    408.182482  19.732360
    # North   438.924051  19.202643
    # South   432.956204  20.423358
    # West    452.029412  19.29411
    55 và đặt
    # Creating your first Pandas pivot table
    pivot = pd.pivot_table[
        data=df,
        index='Region'
    ]
    print[pivot]
    
    # Returns:
    #              Sales      Units
    # Region                       
    # East    408.182482  19.732360
    # North   438.924051  19.202643
    # South   432.956204  20.423358
    # West    452.029412  19.29411
    56, nghĩa là dữ liệu sẽ được nhóm theo cột khu vực

Bởi vì tất cả các tham số khác được để mặc định, Pandas đã đưa ra giả định sau

  • Dữ liệu nên được tổng hợp theo giá trị trung bình của mỗi cột [
    # Creating your first Pandas pivot table
    pivot = pd.pivot_table[
        data=df,
        index='Region'
    ]
    print[pivot]
    
    # Returns:
    #              Sales      Units
    # Region                       
    # East    408.182482  19.732360
    # North   438.924051  19.202643
    # South   432.956204  20.423358
    # West    452.029412  19.29411
    57]
  • Các giá trị phải là bất kỳ cột số nào

Chỉ tổng hợp một số cột nhất định trong Pandas Pivot Table

Trong ví dụ trên, bạn đã không sửa đổi tham số

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
7. Do đó, tất cả các cột số được tổng hợp. Điều này có thể không phải lúc nào cũng lý tưởng. Do đó, Pandas cho phép chúng tôi chuyển vào một chuỗi đơn đại diện cho một cột hoặc danh sách các chuỗi đại diện cho nhiều cột

Bây giờ hãy sửa đổi mã của chúng ta để chỉ tính giá trị trung bình cho một cột duy nhất,

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
59

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
0

Chúng ta có thể thấy rằng thay vì tổng hợp tất cả các cột số, chỉ một cột được chỉ định được tổng hợp

Làm việc với các phương thức tổng hợp trong bảng Pandas Pivot

Bây giờ bạn đã tạo bảng tổng hợp đầu tiên của mình trong Pandas, hãy bắt đầu thay đổi các phương pháp tổng hợp. Điều này cho phép bạn chỉ định cách bạn muốn tổng hợp dữ liệu của mình. Đây là nơi sức mạnh của Pandas thực sự phát huy, cho phép bạn tính toán các phân tích phức tạp một cách dễ dàng

Chỉ định phương pháp tổng hợp trong bảng Pandas Pivot

Bạn có thể sử dụng tham số

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
00 [hàm tổng hợp] để thay đổi cách dữ liệu được tổng hợp trong bảng tổng hợp. Theo mặc định, Pandas sẽ sử dụng phương pháp
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
41 để tổng hợp dữ liệu. Bạn có thể truyền một hàm đã đặt tên, chẳng hạn như
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
42,
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
43 hoặc
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
44 hoặc một hàm có thể gọi được, chẳng hạn như
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
45

Bây giờ, hãy cố gắng thay đổi hành vi của chúng ta để tạo ra tổng doanh số bán hàng của chúng ta trên tất cả các khu vực

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
5

Nhiều phương pháp tổng hợp trong một khung dữ liệu Pandas

Tương tự, chúng ta có thể chỉ định nhiều phương thức tổng hợp cho bảng tổng hợp Pandas. Điều này khá dễ dàng và chỉ yêu cầu bạn chuyển vào danh sách các hàm và hàm sẽ được áp dụng cho tất cả các cột giá trị. Hãy tạo tập hợp cho cả giá trị trung bình và tổng

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
4

Chúng ta có thể thấy điều đó dễ dàng như thế nào và nó cung cấp thêm bao nhiêu dữ liệu. Đối với mỗi cột chứa dữ liệu số, cả giá trị trung bình và tổng đều được tạo

Chỉ định các tập hợp khác nhau trên mỗi cột

Bây giờ, hãy tưởng tượng bạn muốn tính toán các tập hợp khác nhau trên mỗi cột. Để thực hiện việc này, bạn có thể chuyển vào từ điển chứa định dạng cặp khóa-giá trị sau.

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
46. Giả sử chúng ta muốn tính tổng đơn vị và số lượng bán trung bình

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
2

Điều này cho phép bạn dễ dàng xem dữ liệu được so sánh giữa các chỉ số hiệu suất chính khác nhau một cách dễ dàng, trong cùng một Khung dữ liệu

Tập hợp tùy chỉnh trong Pandas Pivot Tables

Pandas cũng cho phép chúng ta chuyển một hàm tùy chỉnh vào hàm

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
1. Điều này mở rộng đáng kể khả năng của chúng tôi để làm việc với các phân tích được thiết kế riêng cho nhu cầu của bạn. Hãy xem cách chúng ta có thể chuyển vào một hàm tính giá trị trung bình của một cột mà không có bất kỳ ngoại lệ nào

Pandas đi kèm với một phương thức,

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
48, cho phép chúng tôi xác định phạm vi giá trị mà chúng tôi muốn chọn dựa trên tỷ lệ phần trăm của chúng trong phạm vi dữ liệu. Giả sử chúng ta muốn tính giá trị trung bình của một cột, loại bỏ 10% dữ liệu trên cùng và dưới cùng. Chúng ta có thể định nghĩa hàm sau

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
5

Hàm này chấp nhận một tham số duy nhất,

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
49, đây sẽ là các giá trị được hàm
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
1 truyền vào. Các giá trị sau đó được lọc bằng phương pháp
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
21. Cuối cùng, giá trị trung bình của các giá trị này được tính. Hãy xem cách chúng ta có thể sử dụng điều này [và tập hợp
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
22 bình thường] trong bảng tổng hợp của chúng ta, áp dụng cho cột Doanh số của chúng ta

# The syntax of the .pivot_table[] function
import pandas as pd
pd.pivot_table[
    data=,
    values=None, 
    index=None, 
    columns=None, 
    aggfunc='mean', 
    fill_value=None, 
    margins=False, 
    dropna=True, 
    margins_name='All', 
    observed=False,
    sort=True
] 
0

Các bảng Pivot Pandas phức tạp hơn

Bây giờ bạn đã hiểu về cách hoạt động của hàm

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
1 trong Pandas, hãy xem cách chúng ta có thể mở rộng hiểu biết của mình. Trong phần này, bạn sẽ tìm hiểu cách thêm cột và nhiều chỉ mục vào bảng tổng hợp Pandas của chúng tôi

Thêm cột vào Bảng Pivot Pandas

Khi chúng tôi thêm các cột vào bảng tổng hợp Pandas, chúng tôi sẽ thêm một thứ nguyên khác vào dữ liệu. Trong khi tham số

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
8 chia dữ liệu theo chiều dọc, tham số
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
9 nhóm và chia dữ liệu theo chiều ngang. Điều này cho phép chúng tôi tạo một bảng dễ đọc. Hãy xem cách chúng ta có thể sử dụng tham số
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
9 để phân chia dữ liệu theo cột Loại

# The syntax of the .pivot_table[] function
import pandas as pd
pd.pivot_table[
    data=,
    values=None, 
    index=None, 
    columns=None, 
    aggfunc='mean', 
    fill_value=None, 
    margins=False, 
    dropna=True, 
    margins_name='All', 
    observed=False,
    sort=True
] 
5

Chúng ta có thể thấy việc thêm toàn bộ chiều dữ liệu khác dễ dàng như thế nào. Điều này cho phép chúng tôi phát hiện sự khác biệt giữa các nhóm ở định dạng dễ đọc

Thêm nhiều chỉ số vào Pandas Pivot Tables

Trong khi các cột đã thêm một chiều ngang, chúng ta cũng có thể chỉ định nhiều chỉ số khi có một hệ thống phân cấp hợp lý trong dữ liệu của chúng ta. Ví dụ: chúng ta có thể thêm thứ nguyên ngày vào bảng tổng hợp của mình. Hãy sử dụng bộ truy cập ngày tích hợp sẵn của Pandas để nhóm dữ liệu của chúng ta theo quý. Sau đó, điều này cho phép chúng tôi trực quan hóa dữ liệu của mình trong một khoảng thời gian. Hãy xem cách nó hoạt động

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
00

Điều này trả về một Khung dữ liệu Pandas đa chỉ mục. Mặc dù có vẻ phức tạp hơn, nhưng việc truy cập dữ liệu trong Khung dữ liệu Pandas đa chỉ mục hoạt động khá giống với việc truy cập dữ liệu trong bất kỳ Khung dữ liệu nào khác. Tuy nhiên, vì bây giờ chúng ta có hai cột chỉ mục, thay vì 1, chúng ta có thể chuyển vào một bộ chỉ mục. Giả sử chúng ta chỉ muốn vào ngã tư khu Đông, khu phố 1 và quần áo nam, chúng ta có thể sử dụng đoạn mã sau

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
01

Tùy chỉnh Pandas Pivot Tables

Trong phần này, bạn sẽ tìm hiểu cách tùy chỉnh bảng tổng hợp Pandas của mình. Điều này cho phép bạn thêm các tùy chỉnh khác, chẳng hạn như thêm tổng số và làm việc với dữ liệu bị thiếu. Bạn cũng sẽ tìm hiểu cách điền dữ liệu bị thiếu vào bảng tổng hợp kết quả bằng một giá trị cụ thể

Thêm Tổng số vào Pandas Pivot Tables

Hãy bắt đầu bằng cách tìm hiểu cách thêm tổng số vào bảng tổng hợp Pandas. Điều này được kiểm soát bởi tham số

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
02, chấp nhận giá trị boolean. Theo mặc định, giá trị này được đặt thành
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
28, nhưng việc chuyển đổi giá trị này thành
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
06 sẽ thêm tổng vào các hàng và cột. Hãy xem nó trông như thế nào

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
02

Theo mặc định, Pandas sẽ đặt tên cho tổng số là

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
50. Nếu bạn muốn đổi tên các nhãn này, bạn có thể sử dụng tham số
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
04 để chuyển vào một chuỗi để gắn nhãn lại các giá trị

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
03

Xử lý dữ liệu bị thiếu trong Pandas Pivot Table

Khi Pandas gặp một mặt cắt không có dữ liệu tồn tại, nó sẽ bao gồm giá trị

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
52 trong bảng tổng hợp kết quả. Hãy sửa đổi Khung dữ liệu của chúng tôi để bao gồm một số dữ liệu bị thiếu và tính toán bảng tổng hợp để xem nó trông như thế nào

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
04

Có thể không phải lúc nào cũng lý tưởng để xem giá trị

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
52, đặc biệt đối với những khán giả không có kỹ thuật. Do đó, Pandas cung cấp một tham số,
# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
01, cho phép bạn chuyển vào một giá trị để điền vào các điểm dữ liệu bị thiếu này. Ví dụ: nếu chúng tôi muốn điền tất cả các giá trị này bằng 0, chúng tôi chỉ cần chuyển vào đối số này

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
05

Sắp xếp dữ liệu bảng Pandas Pivot

Bắt đầu từ Pandas phiên bản 1. 3. 0, một tham số mới đã được thêm vào cho phép bạn sắp xếp DataFrame kết quả. Trước đây, trước tiên bạn cần tạo DataFrame và sau đó chuyển vào một phương thức để sắp xếp dữ liệu. Giờ đây, bạn có thể chỉ cần chuyển đối số

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
55 để giúp sắp xếp DataFrame kết quả của mình

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
06

Theo mặc định, Pandas sẽ sắp xếp bảng tổng hợp theo thứ tự tăng dần. Thật không may, để sắp xếp phức tạp hơn [chẳng hạn như trên các cột khác nhau], bạn vẫn cần xâu chuỗi phương thức

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
56

Lọc bảng Python Pivot

Trong phần này, bạn sẽ tìm hiểu cách lọc bảng tổng hợp Pandas. Bởi vì bảng tổng hợp thường có thể khá lớn, nên việc lọc bảng tổng hợp có thể tập trung vào kết quả khá nhiều. Vì hàm trả về một DataFrame, nên bạn có thể chỉ cần lọc DataFrame như bất kỳ phương pháp nào khác. Hãy tạo lại bảng tổng hợp của chúng tôi cộng các giá trị theo quý và khu vực

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
07

Những gì chúng ta có thể làm bây giờ là lọc theo giá trị vô hướng hoặc theo giá trị động. Ví dụ: chúng tôi có thể chỉ cần lọc dựa trên giá trị được mã hóa cứng. Tuy nhiên, giả sử, ví dụ: chúng tôi muốn lọc để chỉ hiển thị các bản ghi có Doanh số trung bình lớn hơn mức trung bình tổng thể, chúng tôi có thể viết bộ lọc sau

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
08

Điều này cho phép chúng tôi xem chính xác những gì chúng tôi muốn xem

bài tập

Đã đến lúc kiểm tra việc học của bạn. Cố gắng giải các bài tập dưới đây dựa trên những gì bạn đã học. Nếu bạn cần trợ giúp hoặc muốn xác minh giải pháp của mình, hãy chuyển mục này để xem giải pháp mẫu. Sử dụng DataFrame giống như bạn đã làm trong suốt hướng dẫn

Khu vực nào có doanh số cao nhất trong DataFrame?

Bạn có thể sắp xếp bảng tổng hợp của mình, sau đó sử dụng trình truy cập

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
57 để truy cập giá trị cuối cùng [vì dữ liệu được sắp xếp theo thứ tự tăng dần]

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
09

Bạn có thể không muốn sử dụng loại giá trị nào làm thông số fill_value và tại sao?

Bạn nên giữ các loại dữ liệu số [chẳng hạn như số nguyên và số float] để ngăn các cột bị chuyển đổi thành các cột không thể áp dụng các phép toán học cho chúng. Vì các cột trong Pandas đồng nhất nên điều quan trọng là phải ghi nhớ những gì có thể xảy ra

Bạn sẽ xóa hàng tổng [tất cả] khỏi bảng tổng hợp như thế nào?

Đôi khi, bạn có thể chỉ muốn có tổng số cột trong DataFrame kết quả của mình. Do đó, bạn có thể chỉ cần lọc ra hàng cuối cùng, sử dụng chỉ mục phủ định

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
0

Kết luận và tóm tắt

Trong hướng dẫn này, bạn đã học cách sử dụng hàm Pandas

# Creating your first Pandas pivot table
pivot = pd.pivot_table[
    data=df,
    index='Region'
]
print[pivot]

# Returns:
#              Sales      Units
# Region                       
# East    408.182482  19.732360
# North   438.924051  19.202643
# South   432.956204  20.423358
# West    452.029412  19.29411
1 để tạo bảng tổng hợp kiểu Excel, trực tiếp từ Khung dữ liệu Pandas. Chức năng này cung cấp sự linh hoạt đáng kể thông qua một loạt các tham số. Phần dưới đây cung cấp một bản tóm tắt về những gì bạn đã học được

Pivot và Pivot Table trong pandas là gì?

Pivot table trong pandas là một công cụ tuyệt vời để tóm tắt một hoặc nhiều biến số dựa trên hai biến phân loại khác . Các bảng tổng hợp trong gấu trúc được thấy phổ biến trong các tệp MS Excel. Trong python, bảng Pivot của khung dữ liệu gấu trúc có thể được tạo bằng lệnh. gấu trúc. trục_bảng.

Pivot table là gì và chúng ta tạo nó như thế nào?

Bảng tổng hợp là công cụ thống kê tóm tắt và sắp xếp lại các cột và hàng dữ liệu đã chọn trong bảng tính hoặc bảng cơ sở dữ liệu để có được báo cáo mong muốn. The tool does not actually change the spreadsheet or database itself, it simply “pivots” or turns the data to view it from different perspectives.

Bảng tổng hợp có phải là DataFrame không?

Hàm pivot_table[] được sử dụng để tạo bảng tổng hợp kiểu bảng tính dưới dạng DataFrame . Các mức trong bảng tổng hợp sẽ được lưu trữ trong các đối tượng MultiIndex [chỉ mục phân cấp] trên chỉ mục và cột của DataFrame kết quả. Nếu một mảng được truyền, nó phải có cùng độ dài với dữ liệu.

Chủ Đề