Hướng dẫn how do you make a panda bin in python? - làm thế nào để bạn tạo một thùng gấu trúc trong trăn?
Bạn có thể sử dụng 5: Show
Hoặc 6:
... và sau đó 7 hoặc 8 và tổng hợp 9:
Theo mặc định 0 trả về 1.Các phương thức 2 như 3 sẽ sử dụng tất cả các danh mục, ngay cả khi một số loại không có trong dữ liệu, hoạt động trong phân loại. Giới thiệuKhi xử lý dữ liệu số liên tục, thường sẽ hữu ích khi chia dữ liệu thành nhiều thùng để phân tích thêm. Có một số thuật ngữ khác nhau để tạo ra bao gồm xô, binning rời rạc, rời rạc hoặc định lượng hóa. Pandas hỗ trợ các phương pháp này bằng cách sử dụng các hàm 4 và 5. Bài viết này sẽ mô tả ngắn gọn lý do tại sao bạn có thể muốn chia dữ liệu của mình và cách sử dụng các hàm gấu trúc để chuyển đổi dữ liệu liên tục thành một tập hợp các thùng riêng biệt. Giống như nhiều chức năng của gấu trúc, 4 và 5 có vẻ đơn giản nhưng có rất nhiều khả năng được đóng gói trong các chức năng đó. Ngay cả đối với người dùng có nhiều kinh nghiệm, tôi nghĩ bạn sẽ học được một vài thủ thuật sẽ hữu ích cho phân tích của riêng bạn & NBSP.BinningMột trong những trường hợp phổ biến nhất của Binning được thực hiện đằng sau hậu trường cho bạn khi tạo biểu đồ. Biểu đồ dưới đây của dữ liệu bán hàng của khách hàng, cho thấy cách một tập hợp các số bán hàng liên tục có thể được chia thành các thùng riêng biệt (ví dụ: $ 60.000 - 70.000 đô la) và sau đó được sử dụng để nhóm và đếm tài khoản & nbsp; Dưới đây là mã cho thấy cách chúng tôi tóm tắt thông tin bán hàng năm 2018 cho một nhóm khách hàng. Đại diện này minh họa số lượng khách hàng có doanh số trong các phạm vi nhất định. Mã mẫu được bao gồm trong sổ ghi chép này nếu bạn muốn theo dõi & nbsp; cùng. import pandas as pd import numpy as np import seaborn as sns sns.set_style('whitegrid') raw_df = pd.read_excel('2018_Sales_Total.xlsx') df = raw_df.groupby(['account number', 'name'])['ext price'].sum().reset_index() df['ext price'].plot(kind='hist') Có nhiều kịch bản khác mà bạn có thể muốn xác định thùng của riêng bạn. Trong ví dụ trên, có 8 thùng với dữ liệu. Điều gì sẽ xảy ra nếu chúng ta muốn chia khách hàng của mình thành các nhóm 3, 4 hoặc 5? Đó là nơi mà Pandas 5 và 4 phát huy tác dụng. Các chức năng này nghe có vẻ tương tự và thực hiện các chức năng Binning tương tự nhưng có sự khác biệt có thể gây nhầm lẫn với người dùng mới. Họ cũng có một số tùy chọn có thể làm cho chúng rất hữu ích cho phân tích hàng ngày. Phần còn lại của bài viết sẽ cho thấy sự khác biệt của họ là gì và cách sử dụng & nbsp; chúng.QcutTài liệu gấu trúc mô tả 5 là một chức năng rời rạc dựa trên lượng tử. Điều này về cơ bản có nghĩa là 5 cố gắng chia dữ liệu cơ bản thành các thùng có kích thước bằng nhau. Hàm xác định các thùng sử dụng phần trăm dựa trên phân phối dữ liệu, chứ không phải các cạnh số thực của các thùng & nbsp;Nếu bạn đã sử dụng chức năng Pandas import pandas as pd import numpy as np import seaborn as sns sns.set_style('whitegrid') raw_df = pd.read_excel('2018_Sales_Total.xlsx') df = raw_df.groupby(['account number', 'name'])['ext price'].sum().reset_index() df['ext price'].plot(kind='hist')2, bạn đã thấy một ví dụ về các khái niệm cơ bản được biểu thị bằng 5:df['ext price'].describe() count 20.000000 mean 101711.287500 std 27037.449673 min 55733.050000 25% 89137.707500 50% 100271.535000 75% 110132.552500 max 184793.700000 Name: ext price, dtype: float64 Hãy ghi nhớ các giá trị cho 25%, 50% và 75% phần trăm khi chúng ta xem xét trực tiếp bằng cách sử dụng 5.Việc sử dụng đơn giản nhất 5 là xác định số lượng lượng tử và để gấu trúc tìm ra cách phân chia dữ liệu. Trong ví dụ dưới đây, chúng tôi bảo Pandas tạo ra 4 nhóm có kích thước bằng nhau của & NBSP; dữ liệu.pd.qcut(df['ext price'], q=4) 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]] Kết quả là một chuỗi phân loại đại diện cho các thùng bán hàng. Bởi vì chúng tôi đã yêu cầu các lượng tử với import pandas as pd import numpy as np import seaborn as sns sns.set_style('whitegrid') raw_df = pd.read_excel('2018_Sales_Total.xlsx') df = raw_df.groupby(['account number', 'name'])['ext price'].sum().reset_index() df['ext price'].plot(kind='hist')6 các thùng phù hợp với phần trăm từ hàm import pandas as pd import numpy as np import seaborn as sns sns.set_style('whitegrid') raw_df = pd.read_excel('2018_Sales_Total.xlsx') df = raw_df.groupby(['account number', 'name'])['ext price'].sum().reset_index() df['ext price'].plot(kind='hist')2. Một trường hợp sử dụng phổ biến là lưu trữ kết quả thùng trong DataFrame gốc để phân tích trong tương lai. Ví dụ này, chúng tôi sẽ tạo 4 thùng (hay còn gọi là tứ phân) và 10 thùng (còn gọi là deciles) và lưu trữ kết quả trong bản gốc & nbsp; dataFrame: 0
Purdy-Kunde (76471.0, 87168.0] 1 2Kulas inc 3 4(110132.552, 184793.7] (124778.0, 184794.0] 5
(76471.0, 87168.0] Kulas inc 6 7(110132.552, 184793.7] (124778.0, 184794.0]
Chế độ xem thú vị khác là xem các giá trị được phân phối trên các thùng bằng cách sử dụng df['ext price'].describe()1: 8
(76471.0, 87168.0] 9
Kulas inc (110132.552, 184793.7] 0
Có một lưu ý nhỏ về chức năng này. Vượt qua 0 hoặc 1, chỉ có nghĩa là 0% sẽ giống như tối thiểu và 100% sẽ giống như tối đa. Tôi cũng học được rằng phần trăm thứ 50 sẽ luôn được bao gồm, bất kể các giá trị & nbsp; được thông qua. Trước khi chúng ta chuyển sang mô tả 4, có một cách tiềm năng nữa mà chúng ta có thể dán nhãn cho các thùng của mình. Thay vì các phạm vi bin hoặc nhãn tùy chỉnh, chúng ta có thể trả lại số nguyên bằng cách vượt qua pd.qcut(df['ext price'], q=4)0 1
Purdy-Kunde (76471.0, 87168.0]Kulas inc (110132.552, 184793.7] (124778.0, 184794.0] Kim cương Stokes LLC (90686.0, 95908.0] 2Màu bạc 3 4Cá nhân, tôi nghĩ rằng sử dụng pd.qcut(df['ext price'], q=4)1 là kịch bản hữu ích nhất nhưng có thể có những trường hợp phản hồi số nguyên có thể hữu ích vì vậy tôi muốn chỉ ra rõ ràng nó & nbsp; 5 6cắt Bây giờ chúng ta đã thảo luận về cách sử dụng 5, chúng ta có thể chỉ ra cách 4 khác nhau. Nhiều khái niệm chúng tôi đã thảo luận ở trên áp dụng nhưng có một vài khác biệt với việc sử dụng 4.Sự khác biệt chính là 5 sẽ tính toán kích thước của mỗi thùng để đảm bảo phân phối dữ liệu trong các thùng là bằng nhau. Nói cách khác, tất cả các thùng sẽ có (khoảng) cùng một số lượng quan sát nhưng phạm vi thùng sẽ & nbsp; khác nhau.Mặt khác, 4 được sử dụng để xác định cụ thể các cạnh bin. Không có gì đảm bảo về việc phân phối các mặt hàng trong mỗi thùng. Trên thực tế, bạn có thể định nghĩa các thùng theo cách không có vật phẩm nào được bao gồm trong thùng hoặc gần như tất cả các mặt hàng đều nằm trong một & nbsp; bin.Trong các ví dụ trong thế giới thực, các thùng có thể được xác định bởi các quy tắc kinh doanh. Đối với một chương trình Flier thường xuyên, 25.000 dặm là mức bạc và điều đó không thay đổi dựa trên sự thay đổi của dữ liệu hàng năm. Nếu chúng tôi muốn xác định các cạnh bin (25.000 - 50.000, v.v.), chúng tôi sẽ sử dụng 4. Chúng ta cũng có thể sử dụng 4 để xác định các thùng có kích thước không đổi và để gấu trúc tìm ra cách xác định các cạnh thùng & nbsp;Một số ví dụ nên làm cho sự khác biệt này & nbsp; rõ ràng. Để đơn giản, tôi sẽ xóa các cột trước để giữ các ví dụ & nbsp; ngắn: Đối với ví dụ đầu tiên, chúng ta có thể cắt dữ liệu thành 4 kích thước thùng bằng nhau. Pandas sẽ thực hiện toán học đằng sau hậu trường để xác định cách chia dữ liệu được đặt thành các nhóm 4 & nbsp này: các nhóm: 7
Một trong những thách thức với việc xác định phạm vi bin với vết cắt là nó có thể cồng kềnh để tạo ra danh sách tất cả các phạm vi bin. Có một vài phím tắt chúng tôi có thể sử dụng để tạo ra các phạm vi mà chúng tôi & nbsp; cần. Đầu tiên, chúng ta có thể sử dụng 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]]4 để tạo khoảng cách đều nhau & nbsp; phạm vi: phạm vi: 8 9Không gian Linspace Numpy là một hàm đơn giản cung cấp một mảng các số cách đều nhau trong phạm vi do người dùng xác định. Trong ví dụ này, chúng tôi muốn 9 điểm cắt đều cách đều nhau từ 0 đến 200.000. Độc giả Astute có thể nhận thấy rằng chúng tôi có 9 số nhưng chỉ có 8 loại. Nếu bạn vạch ra các danh mục thực tế, nó sẽ có ý nghĩa tại sao chúng tôi kết thúc với 8 loại từ 0 đến 200.000. Trong tất cả các trường hợp, có một loại ít hơn số lượng Cut & nbsp; điểm. Tùy chọn khác là sử dụng 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]]5 cung cấp chức năng tương tự. Tôi thấy bài viết này là một hướng dẫn hữu ích trong việc hiểu cả hai chức năng. Tôi khuyên bạn nên thử cả hai cách tiếp cận và xem cái nào hoạt động tốt nhất cho nhu cầu của bạn. Có một tùy chọn bổ sung để xác định thùng của bạn và đó là sử dụng gấu trúc 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]]6. Tôi đã phải xem tài liệu Pandas để tìm ra tài liệu này. Đó là một chút bí truyền nhưng tôi nghĩ rằng nó là tốt để bao gồm & nbsp; nó. 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]]6 cung cấp rất nhiều sự linh hoạt. Ví dụ, nó có thể được sử dụng trên các phạm vi ngày cũng như các giá trị số. Đây là một số & nbsp; ví dụ: 0 1Có một nhược điểm để sử dụng 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]]6. Bạn không thể xác định nhãn Custom & nbsp; 2
Có một tùy chọn bổ sung để xác định thùng của bạn và đó là sử dụng gấu trúc 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]]6. Tôi đã phải xem tài liệu Pandas để tìm ra tài liệu này. Đó là một chút bí truyền nhưng tôi nghĩ rằng nó là tốt để bao gồm & nbsp; nó. 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]]6 cung cấp rất nhiều sự linh hoạt. Ví dụ, nó có thể được sử dụng trên các phạm vi ngày cũng như các giá trị số. Đây là một số & nbsp; ví dụ: Có một nhược điểm để sử dụng 0 (55733.049000000006, 89137.708] 1 (89137.708, 100271.535] 2 (55733.049000000006, 89137.708] .... 17 (110132.552, 184793.7] 18 (100271.535, 110132.552] 19 (100271.535, 110132.552] Name: ext price, dtype: category Categories (4, interval[float64]): [(55733.049000000006, 89137.708] < (89137.708, 100271.535] < (100271.535, 110132.552] < (110132.552, 184793.7]]6. Bạn không thể xác định nhãn Custom & nbsp; số tài khoản Tên Giá EXT 3 4Herman LLC (60000, 70000]Kiehn-Spinka màu bạc
(70000, 80000](130000, 140000] Làm thế nào để bạn làm thùng trong gấu trúc?Đây là những tham số đã được sử dụng:.. X: Mảng đầu vào sẽ bị hỏng. Phải là 1 chiều .. BIN: Trình tự vô hướng: Xác định các cạnh bin cho phép chiều rộng không đồng nhất .. Nhãn: Chỉ định các nhãn cho các thùng được trả lại. .... Bao gồm_lowest: (bool) liệu khoảng đầu có bao gồm bên trái hay không .. Làm thế nào để bạn đánh bại một gấu trúc trong Python?Trong Python Pandas Binning theo khoảng cách đạt được bằng hàm cắt ().Chúng tôi nhóm các giá trị liên quan đến cupcake cột thành ba nhóm: nhỏ, trung bình và lớn.Để làm điều đó, chúng ta cần tính toán các khoảng trong mỗi nhóm rơi.by means of the cut() function. We group values related to the column Cupcake into three groups: small, medium and big. In order to do it, we need to calculate the intervals within each group falls.
Làm thế nào để bạn tạo ra một thùng trong Python?Hàm Python sau đây có thể được sử dụng để tạo thùng ... def created_bins (Lower_bound, Width, số lượng): "" "created_bins trả về một phân vùng chiều rộng (khoảng cách) bằng nhau. .... Bins = created_bins (Lower_bound = 10, Width = 10, Số lượng = 5) BIN .. Làm cách nào để tạo một mô -đun Panda trong Python?Bạn cần phải có Python 2.7 trở lên để cài đặt mô -đun Pandas.Nếu bạn đang sử dụng Conda, thì bạn có thể cài đặt nó bằng lệnh bên dưới. Nếu bạn đang sử dụng PIP, sau đó chạy lệnh bên dưới để cài đặt mô -đun Pandas.Vì gấu trúc phụ thuộc vào thư viện Numpy, chúng ta cần nhập sự phụ thuộc này.If you are using conda, then you can install it using below command. If you are using PIP, then run the below command to install pandas module. As Pandas is dependent on the NumPy library, we need to import this dependency. |