Hướng dẫn equal frequency binning python pandas - gấu trúc python binning tần số bằng nhau

df['ext price'].describe[]
2 có chức năng gọi là
df['ext price'].describe[]
3 sẽ làm những gì bạn muốn. Chỉ cần vượt qua cột
df['ext price'].describe[]
4:

In []:
qc = pd.qcut[df['data'], q=3, precision=0]
qc

Out[]:
0    [79.0, 89.0]
1    [44.0, 63.0]
2    [44.0, 63.0]
3    [63.0, 79.0]
4    [63.0, 79.0]
5    [79.0, 89.0]
Name: data, dtype: category
Categories [3, interval[float64]]: [[44.0, 63.0] < [63.0, 79.0] < [79.0, 89.0]]

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

df['ext price'].describe[]
5 để nhận số lượng:

In []:
qc.value_counts[].sort_index[]

Out[]:
[44.0, 63.0]    2
[63.0, 79.0]    2
[79.0, 89.0]    2
Name: data, dtype: int64

Thứ Hai ngày 14 tháng 10 năm 2019

Giới thiệu

Khi 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

df['ext price'].describe[]
6 và
df['ext price'].describe[]
7. 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,
df['ext price'].describe[]
6 và
df['ext price'].describe[]
7 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.

Binning

Mộ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

df['ext price'].describe[]
7 và
df['ext price'].describe[]
6 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.

Qcut

Tài liệu gấu trúc mô tả

df['ext price'].describe[]
7 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à
df['ext price'].describe[]
7 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

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
4, bạn đã thấy một ví dụ về các khái niệm cơ bản được biểu thị bằng
df['ext price'].describe[]
7:

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

df['ext price'].describe[]
7.

Việc sử dụng đơn giản nhất

df['ext price'].describe[]
7 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] 

Chủ Đề