Hướng dẫn pivot table in python example - bảng tổng hợp trong ví dụ về python

Giới thiệu

Hầu hết mọi người có thể có kinh nghiệm với các bảng trục trong Excel. Pandas cung cấp một chức năng tương tự được gọi là [đủ thích hợp]

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
9. Mặc dù nó cực kỳ hữu ích, tôi thường thấy mình phải vật lộn để nhớ cách sử dụng cú pháp để định dạng đầu ra cho nhu cầu của tôi. Bài viết này sẽ tập trung vào việc giải thích chức năng pivot_table và cách sử dụng nó cho dữ liệu của bạn & nbsp; phân tích.

Nếu bạn không quen thuộc với khái niệm này, Wikipedia giải thích nó bằng các điều khoản cấp cao. BTW, bạn có biết rằng Microsoft đã đăng ký nhãn hiệu PivotTable không? Tôi cũng không cần phải nói, tôi sẽ nói về một bảng xoay không thể xoay được!BTW, did you know that Microsoft trademarked PivotTable? Neither did I. Needless to say, I’ll be talking about a pivot table not PivotTable!

Là một phần thưởng bổ sung, tôi đã tạo ra một tờ cheat đơn giản tóm tắt pivot_table. Bạn có thể tìm thấy nó ở cuối bài này và tôi hy vọng nó phục vụ như một tài liệu tham khảo hữu ích. Hãy cho tôi biết nếu đó là & nbsp; hữu ích.

The Data

Một trong những thách thức với việc sử dụng Panda từ

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
9 là đảm bảo bạn hiểu dữ liệu của mình và những câu hỏi bạn đang cố gắng trả lời với bảng Pivot. Nó là một chức năng dường như đơn giản nhưng có thể tạo ra phân tích rất mạnh mẽ rất & nbsp; nhanh chóng.

Trong kịch bản này, tôi sẽ theo dõi một đường ống bán hàng [còn được gọi là phễu]. Vấn đề cơ bản là một số chu kỳ bán hàng rất dài [nghĩ rằng phần mềm doanh nghiệp, thiết bị vốn, v.v.] và quản lý muốn hiểu chi tiết hơn trong suốt & NBSP;

Các câu hỏi điển hình & nbsp; bao gồm:

  • Bao nhiêu doanh thu trong & nbsp; đường ống?
  • Những sản phẩm nào trong & nbsp; đường ống?
  • Ai có những sản phẩm nào ở giai đoạn & nbsp;
  • Làm thế nào có khả năng chúng ta đóng các giao dịch theo năm & nbsp; kết thúc?

Nhiều công ty sẽ có các công cụ CRM hoặc phần mềm khác mà Sales sử dụng để theo dõi quy trình. Mặc dù họ có thể có các công cụ hữu ích để phân tích dữ liệu, nhưng chắc chắn ai đó sẽ xuất dữ liệu để vượt trội và sử dụng một pivotTable để tóm tắt dữ liệu & nbsp;CRM tools or other software that sales uses to track the process. While they may have useful tools for analyzing the data, inevitably someone will export the data to Excel and use a PivotTable to summarize the data.

Sử dụng bảng Pivot Pivot có thể là một giải pháp thay thế tốt bởi vì nó & nbsp; là:

  • Nhanh hơn [một khi nó được đặt & nbsp; up]
  • Tự tài liệu [nhìn vào mã và bạn biết nó & nbsp; không]
  • Dễ sử dụng để tạo báo cáo hoặc & nbsp; email
  • Linh hoạt hơn vì bạn có thể xác định tổng hợp custome & nbsp; chức năng

Đọc trong & nbsp; dữ liệu

Hãy để thiết lập môi trường của chúng tôi & nbsp; đầu tiên.

Nếu bạn muốn theo dõi, bạn có thể tải xuống tệp Excel.

import pandas as pd
import numpy as np

Cảnh báo phiên bản

API PIVOT_TABLE đã thay đổi theo thời gian, vì vậy vui lòng đảm bảo rằng bạn đã cài đặt phiên bản gần đây của gấu trúc [> 0,15] để ví dụ này hoạt động. Ví dụ này cũng sử dụng kiểu dữ liệu danh mục cũng yêu cầu phiên bản gần đây.API has changed over time so please make sure you have a recent version of pandas [ > 0.15] installed for this example to work. This example also uses the category data type which requires a recent version as well.

Đọc trong dữ liệu kênh bán hàng của chúng tôi vào & NBSP; DataFrame

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]

Tài khoảnTênTrả lờiNgười quản lýSản phẩmSố lượngGiá bánTrạng thái01234
714466 Trantow-Barrows Craig Booker Debra Henley CPU 1 30000 trình bày
714466 Trantow-Barrows Craig Booker Debra HenleyCPU 1 10000 trình bày
714466 Trantow-Barrows Craig Booker Debra HenleyCPU 2 5000 trình bày
737550 Phần mềm Craig Booker Debra Henley CPU 1 35000 trình bày
146832 Phần mềm Sự bảo trì Debra Henley CPU 2 65000 trình bày

Phần mềm

Sự bảo trì

df["Status"] = df["Status"].astype["category"]
df["Status"].cat.set_categories[["won","pending","presented","declined"],inplace=True]

Xoay & nbsp; dữ liệu

Khi chúng tôi xây dựng bảng trục, tôi nghĩ rằng nó dễ dàng nhất để thực hiện từng bước một. Thêm các mục và kiểm tra từng bước để xác minh bạn đang nhận được kết quả mà bạn mong đợi. Don Tiết sợ chơi với thứ tự và các biến để xem bài thuyết trình nào có ý nghĩa nhất đối với nhu cầu của bạn.

Bảng xoay đơn giản nhất phải có khung dữ liệu và

df["Status"] = df["Status"].astype["category"]
df["Status"].cat.set_categories[["won","pending","presented","declined"],inplace=True]
2. Trong trường hợp này, hãy để sử dụng tên làm chỉ mục của chúng tôi.

pd.pivot_table[df,index=["Name"]]

Tài khoảnGiá bánSố lượngTênBarton LLCLLCFritsch, Russel và AndersonHerman LLCLLCJerde-HilpertKassulke, Ondricka và MetzKeeling LLCLLCKiehn-SpinkaKoepp LtdKulas incPurdy-KundeStokes LLCLLCTrantow-Barrows
740150 35000 1.000000
737550 35000 1.000000
141962 65000 2.000000
412290 5000 2.000000
307599 7000 3.000000
688981 100000 5.000000
146832 65000 2.000000
729833 35000 2.000000
218895 25000 1.500000
163416 30000 1.000000
239344 7500 1.000000
714466 15000 1.333333

Bạn cũng có thể có nhiều chỉ mục. Trên thực tế, hầu hết các arg

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
9 có thể lấy nhiều giá trị thông qua danh sách A & nbsp;

pd.pivot_table[df,index=["Name","Rep","Manager"]]

Tài khoảnGiá bánSố lượngTênBarton LLCFritsch, Russel và AndersonBarton LLCLLCFritsch, Russel và AndersonHerman LLCFritsch, Russel và AndersonHerman LLCHerman LLCHerman LLCLLCKassulke, Ondricka và MetzKeeling LLCJerde-HilpertFritsch, Russel và AndersonHerman LLCKassulke, Ondricka và MetzKeeling LLCKeeling LLCKeeling LLCLLCKeeling LLCKeeling LLCKiehn-SpinkaKoepp LtdHerman LLCKoepp LtdKeeling LLCKeeling LLCKulas incKoepp LtdHerman LLCPurdy-KundeKassulke, Ondricka và MetzKeeling LLCStokes LLCLLCKassulke, Ondricka và MetzKeeling LLCTrantow-BarrowsHerman LLCHerman LLC
740150 35000 1.000000
737550 35000 1.000000
141962 65000 2.000000
412290 5000 2.000000
307599 7000 3.000000
688981 100000 5.000000
146832 65000 2.000000
729833 35000 2.000000
218895 25000 1.500000
163416 30000 1.000000
239344 7500 1.000000
714466 15000 1.333333

Kassulke, Ondricka và Metz

pd.pivot_table[df,index=["Manager","Rep"]]

Tài khoảnGiá bánSố lượngFritsch, Russel và AndersonBarton LLCHerman LLCHerman LLCKoepp LtdFritsch, Russel và AndersonKeeling LLCKassulke, Ondricka và MetzKeeling LLC
720237.0 20000.000000 1.250000
194874.0 38333.333333 1.666667
576220.0 20000.000000 1.500000
196016.5 27500.000000 1.250000
614061.5 44250.000000 3.000000

Koepp Ltd

Kulas inc

pd.pivot_table[df,index=["Manager","Rep"],values=["Price"]]

Giá bánFritsch, Russel và AndersonBarton LLCHerman LLCHerman LLCKoepp LtdFritsch, Russel và AndersonKeeling LLCKassulke, Ondricka và MetzKeeling LLC
20000
38333
20000
27500
44250

Koepp Ltd

pd.pivot_table[df,index=["Manager","Rep"],values=["Price"],aggfunc=np.sum]

Giá bánFritsch, Russel và AndersonBarton LLCHerman LLCHerman LLCKoepp LtdFritsch, Russel và AndersonKeeling LLCKassulke, Ondricka và MetzKeeling LLC
80000
115000
40000
110000
177000

Koepp Ltd

pd.pivot_table[df,index=["Manager","Rep"],values=["Price"],aggfunc=[np.mean,len]]

Kulas incStokes LLCGiá bánGiá bánFritsch, Russel và AndersonBarton LLCHerman LLCHerman LLCKoepp LtdFritsch, Russel và AndersonKeeling LLCKassulke, Ondricka và MetzKeeling LLC
20000 4
38333 3
20000 2
27500 4
44250 4

Koepp Ltd

Kulas inc

Stokes LLC

pd.pivot_table[df,index=["Manager","Rep"],values=["Price"],
               columns=["Product"],aggfunc=[np.sum]]

Bạn cũng có thể có nhiều chỉ mục. Trên thực tế, hầu hết các arg
df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
9 có thể lấy nhiều giá trị thông qua danh sách A & nbsp;Giá bánTrả lờiNgười quản lýJohn SmithDebra HenleyCraig BookerFritsch, Russel và AndersonBarton LLCHerman LLCHerman LLCKoepp LtdFritsch, Russel và AndersonKeeling LLCKassulke, Ondricka và MetzKeeling LLC
65000 5000 Kassulke, Ondricka và Metz 10000
105000 Kassulke, Ondricka và MetzKassulke, Ondricka và Metz 10000
35000 5000 Kassulke, Ondricka và MetzKeeling LLC
95000 5000 Kassulke, Ondricka và Metz 10000
165000 7000 5000 Keeling LLC

Koepp Ltd

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
0

TổngGiá bánSản phẩmCPUSự bảo trìMàn hìnhPhần mềmNgười quản lýTrả lờiDebra HenleyCraig BookerDaniel HiltonJohn SmithFred AndersonCedric RêuWendy Yule
65000 5000 0 10000
105000 0 0 10000
35000 5000 0 0
95000 5000 0 10000
165000 7000 5000 0

Tôi nghĩ rằng nó sẽ hữu ích để thêm số lượng là tốt. Thêm số lượng vào danh sách

df["Status"] = df["Status"].astype["category"]
df["Status"].cat.set_categories[["won","pending","presented","declined"],inplace=True]
5.

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
1

TổngGiá bánSản phẩmSản phẩmCPUSự bảo trìMàn hìnhPhần mềmCPUSự bảo trìMàn hìnhPhần mềmNgười quản lýTrả lờiDebra HenleyCraig BookerDaniel HiltonJohn SmithFred AndersonCedric RêuWendy Yule
65000 5000 0 10000 2 2 0 1
105000 0 0 10000 4 0 0 1
35000 5000 0 0 1 2 0 0
95000 5000 0 10000 3 1 0 1
165000 7000 5000 0 7 3 2 0

Tôi nghĩ rằng nó sẽ hữu ích để thêm số lượng là tốt. Thêm số lượng vào danh sách

df["Status"] = df["Status"].astype["category"]
df["Status"].cat.set_categories[["won","pending","presented","declined"],inplace=True]
5.

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
2

TổngGiá bánSản phẩmNgười quản lýTrả lờiSản phẩmDebra HenleyCraig BookerCPUSự bảo trìPhần mềmDaniel HiltonCPUPhần mềmJohn SmithCPUSự bảo trìFred AndersonCedric RêuCPUSự bảo trìPhần mềmWendy YuleCPUSự bảo trìMàn hình
65000 2
5000 2
10000 1
105000 4
10000 1
35000 1
5000 2
95000 3
5000 1
10000 1
165000 7
7000 3
5000 2

Phần mềm

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
3

TổngNgười quản lýGiá bánSản phẩmGiá bánSản phẩmNgười quản lýTrả lờiSản phẩmDebra HenleyCraig BookerCPUSự bảo trìPhần mềmDaniel HiltonCPUPhần mềmJohn SmithCPUSự bảo trìFred AndersonCedric RêuCPUSự bảo trìPhần mềmWendy YuleCPUSự bảo trìMàn hìnhTôi nghĩ rằng nó sẽ hữu ích để thêm số lượng là tốt. Thêm số lượng vào danh sách
df["Status"] = df["Status"].astype["category"]
df["Status"].cat.set_categories[["won","pending","presented","declined"],inplace=True]
5.
65000 2 32500.000000 1.000000
5000 2 5000.000000 2.000000
10000 1 10000.000000 1.000000
105000 4 52500.000000 2.000000
10000 1 10000.000000 1.000000
35000 1 35000.000000 1.000000
5000 2 5000.000000 2.000000
95000 3 47500.000000 1.500000
5000 1 5000.000000 1.000000
10000 1 10000.000000 1.000000
165000 7 82500.000000 3.500000
7000 3 7000.000000 3.000000
5000 2 5000.000000 2.000000
522000 30 30705.882353 1.764706

Số lượng

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
4

TổngGiá bánNgười quản lýTrả lờiDebra HenleyCraig BookerDaniel HiltonJohn SmithFred AndersonFred AndersonCraig BookerDaniel HiltonJohn SmithFred AndersonTôi nghĩ rằng nó sẽ hữu ích để thêm số lượng là tốt. Thêm số lượng vào danh sách
df["Status"] = df["Status"].astype["category"]
df["Status"].cat.set_categories[["won","pending","presented","declined"],inplace=True]
5.
70000
50000
50000
65000
65000
5000
45000
172000
522000

Số lượng

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
5

Giá bánSản phẩmSản phẩmCPUSự bảo trìMàn hìnhPhần mềmCPUSự bảo trìMàn hìnhPhần mềmNgười quản lýTrả lờiDebra HenleyCraig BookerDaniel HiltonJohn SmithFred AndersonFred AndersonCraig BookerDaniel HiltonJohn SmithFred Anderson
70000 0 0 0 2 0 0 0
40000 10000 0 0 1 2 0 0
30000 0 0 20000 1 0 0 2
65000 0 0 0 1 0 0 0
65000 0 0 0 1 0 0 0
0 5000 0 0 0 1 0 0
30000 0 5000 10000 1 0 1 1
165000 7000 0 0 2 1 0 0

Cedric Rêu

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
6

Giá bánSản phẩmNgười quản lýTổngTrả lờiSản phẩmCPUSự bảo trìMàn hìnhPhần mềmCPUSự bảo trìMàn hìnhPhần mềmCPUSự bảo trìDebra HenleyPhần mềmNgười quản lýTrả lờiDebra HenleyCraig BookerDaniel HiltonJohn SmithFred AndersonFred AndersonCraig BookerDaniel HiltonJohn SmithFred Anderson
35000 0 0 0 70000 0 0 0 2 0 0 0
40000 5000 0 0 40000 10000 0 0 1 2 0 0
30000 0 0 10000 30000 0 0 20000 1 0 0 2
65000 0 0 0 65000 0 0 0 1 0 0 0
65000 0 0 0 65000 0 0 0 1 0 0 0
0 5000 0 0 0 5000 0 0 0 1 0 0
30000 0 5000 10000 30000 0 5000 10000 1 0 1 1
82500 7000 0 0 165000 7000 0 0 2 1 0 0

Cedric Rêu

Một pivottable là một cách tương tác để nhanh chóng tóm tắt một lượng lớn dữ liệu. Bạn có thể sử dụng một pivottable để phân tích chi tiết dữ liệu số và trả lời các câu hỏi không lường trước được về dữ liệu của bạn. Một pivottable được thiết kế đặc biệt để: truy vấn một lượng lớn dữ liệu theo nhiều cách thân thiện với người dùng.

Làm thế nào để bạn truy cập các bảng xoay vòng trong Python?

Các bảng pivot trong gấu trúc được nhìn thấy phổ biến trong các tệp MS Excel. Trong Python, các bảng Pivot của Pandas DataFrames có thể được tạo bằng lệnh: pandas.pivot_table. Bạn có thể tổng hợp một cột số như một bảng chéo so với hai cột phân loại.

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
7

Giá bánSố lượngbần tiệnTổngLenSản phẩmCPUSự bảo trìMàn hìnhPhần mềmCPUSự bảo trìMàn hìnhPhần mềmCPUSự bảo trìMàn hìnhPhần mềmMàn hìnhNgười quản lýTrạng tháiDebra Henleysuy giảmchưa giải quyếttrình bày
35000 0 0 0 70000 0 0 0 2 0 0 0
40000 5000 0 0 40000 10000 0 0 1 2 0 0
30000 0 0 10000 30000 0 0 20000 1 0 0 2
65000 0 0 0 65000 0 0 0 1 0 0 0

thắng

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
8

Giá bánSố lượngbần tiệnTổngLenSản phẩmCPUSự bảo trìMàn hìnhPhần mềmCPUSự bảo trìMàn hìnhPhần mềmCPUSự bảo trìMàn hìnhPhần mềmMàn hìnhNgười quản lýTrạng tháisuy giảmtrình bàythắngsuy giảmtrình bày
40000 5000 0 0 40000 10000 0 0 1 2 0 0
65000 0 0 0 65000 0 0 0 1 0 0 0
0 5000 0 0 0 5000 0 0 0 1 0 0
82500 7000 0 0 165000 7000 0 0 2 1 0 0

thắng

Chúng ta có thể xem xét tất cả các giao dịch đang chờ xử lý và won & nbsp;

Cheat Sheet

Để cố gắng tóm tắt tất cả những điều này, tôi đã tạo ra một bảng gian lận mà tôi hy vọng sẽ giúp bạn nhớ cách sử dụng gấu trúc

df = pd.read_excel["../in/sales-funnel.xlsx"]
df.head[]
9. Hãy xem và cho tôi biết những gì bạn & nbsp; nghĩ.

Cảm ơn và chúc may mắn với việc tạo bảng Pivot & NBSP; bảng của riêng bạn.

Làm thế nào để bạn tạo một bảng xoay trong Python?

Tạo một bảng trục. Bằng cách chỉ định các tham số chỉ mục và cột trong PD. hàm pivot_table [], bạn có thể xác định tính năng nào sẽ xuất hiện trong các cột và hàng. Trong tham số giá trị, bạn nên chỉ định tính năng nào nên được sử dụng để điền vào các giá trị ô.By specifying the index and columns parameters in the pd. pivot_table[] function, you can determine which features should appear in the columns and rows. In the values parameter, you should specify which feature should be used to fill in the cell values.

Việc sử dụng bảng trục trong Python là gì?

Chức năng PANDAS PIVOT_TABLE [] cung cấp một giao diện quen thuộc để tạo các bảng trục kiểu Excel.Hàm yêu cầu ở mức tối thiểu hoặc chỉ mục = hoặc cột = tham số để chỉ định cách phân chia dữ liệu.Hàm có thể tính toán một hoặc nhiều phương thức tập hợp, bao gồm sử dụng các hàm tùy chỉnh.

Bảng pivot cho ví dụ là gì?

Một pivottable là một cách tương tác để nhanh chóng tóm tắt một lượng lớn dữ liệu.Bạn có thể sử dụng một pivottable để phân tích chi tiết dữ liệu số và trả lời các câu hỏi không lường trước được về dữ liệu của bạn.Một pivottable được thiết kế đặc biệt để: truy vấn một lượng lớn dữ liệu theo nhiều cách thân thiện với người dùng.an interactive way to quickly summarize large amounts of data. You can use a PivotTable to analyze numerical data in detail, and answer unanticipated questions about your data. A PivotTable is especially designed for: Querying large amounts of data in many user-friendly ways.

Làm thế nào để bạn truy cập các bảng xoay vòng trong Python?

Các bảng pivot trong gấu trúc được nhìn thấy phổ biến trong các tệp MS Excel.Trong Python, các bảng Pivot của Pandas DataFrames có thể được tạo bằng lệnh: pandas.pivot_table.Bạn có thể tổng hợp một cột số như một bảng chéo so với hai cột phân loại.pandas. pivot_table . You can aggregate a numeric column as a cross tabulation against two categorical columns.

Bài Viết Liên Quan

Chủ Đề