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

s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
5:

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = pd.cut(df['percentage'], bins)
print (df)
   percentage     binned
0       46.50   (25, 50]
1       44.20   (25, 50]
2      100.00  (50, 100]
3       42.12   (25, 50]

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5

Hoặc

s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
6:

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5

... và sau đó

s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
7 hoặc
s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
8 và tổng hợp
s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
9:

s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64

Theo mặc định

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
0 trả về
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
1.

Các phương thức

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
2 như
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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.

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

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?

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

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
4 và
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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,
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
4 và
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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.

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')

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?

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

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
5 và
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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.

Qcut

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

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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à
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
5.

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

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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:

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
0

số tài khoảnTênGiá EXTquantile_ex_1quantile_ex_2
0 141962 Herman LLCLLC 63626.03 (55733.049000000006, 89137.708](55732.0, 76471.0]
1 146832 Kiehn-Spinka99608.77 (89137.708, 100271.535](95908.0, 100272.0]
2 163416 Purdy-Kunde77898.21 (55733.049000000006, 89137.708](55732.0, 76471.0]
3 218895 Kiehn-Spinka137351.96 (89137.708, 100271.535](95908.0, 100272.0]
4 239344 Purdy-KundeLLC 91535.92 (89137.708, 100271.535](95908.0, 100272.0]

Purdy-Kunde

(76471.0, 87168.0]

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
1

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
2

Kulas inc

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
3

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
4

(110132.552, 184793.7]

(124778.0, 184794.0]

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
5

số tài khoảnTênGiá EXTquantile_ex_1quantile_ex_2quantile_ex_3
0 141962 Herman LLCLLC 63626.03 (55733.049000000006, 89137.708](55732.0, 76471.0]Kiehn-Spinka
1 146832 Kiehn-Spinka99608.77 (89137.708, 100271.535](95908.0, 100272.0]Purdy-Kunde
2 163416 Purdy-Kunde77898.21 (55733.049000000006, 89137.708](55732.0, 76471.0]Kiehn-Spinka
3 218895 Kiehn-Spinka137351.96 (89137.708, 100271.535](95908.0, 100272.0]Purdy-Kunde
4 239344 Purdy-KundeLLC 91535.92 (89137.708, 100271.535](95908.0, 100272.0]Purdy-Kunde

(76471.0, 87168.0]

Kulas inc

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
6

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
7

(110132.552, 184793.7]

(124778.0, 184794.0]

  • Stokes LLC
  • (90686.0, 95908.0]
  • Bạn có thể thấy các thùng rất khác nhau giữa
    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')
    
    8 và
    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')
    
    9. Tôi cũng đã giới thiệu việc sử dụng
    df['ext price'].describe()
    
    0 để xác định số lượng số thập phân để sử dụng để tính toán bin & nbsp; độ chính xác.

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:

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
8

Bây giờ, cho cột thứ hai & nbsp; cột:Điều này minh họa một khái niệm quan trọng. Trong mỗi trường hợp, có một số lượng quan sát bằng nhau trong mỗi thùng. Pandas thực hiện toán học đằng sau hậu trường để tìm ra cách làm cho mỗi thùng. Ví dụ, trong
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')
8, phạm vi của thùng đầu tiên là 74.661,15 trong khi thùng thứ hai chỉ là 9,861,02 (110132 -& nbsp; 100271).
0 55733.050 Kiehn-Spinka
1 87167.958 Purdy-Kunde
2 95908.156 Purdy-Kunde
3 103606.970 (76471.0, 87168.0]
4 112290.054 Purdy-Kunde

(76471.0, 87168.0]

bins = [0, 1, 5, 10, 25, 50, 100]
labels = [1,2,3,4,5,6]
df['binned'] = pd.cut(df['percentage'], bins=bins, labels=labels)
print (df)
   percentage binned
0       46.50      5
1       44.20      5
2      100.00      6
3       42.12      5
9

quantile_ex_1quantile_ex_2quantile_ex_3
Kulas inc20 20 20
(110132.552, 184793.7]4 10 5
(124778.0, 184794.0](89137.708, 100271.535](95908.0, 100272.0]Purdy-Kunde
(76471.0, 87168.0]5 2 4

Kulas inc

(110132.552, 184793.7]

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
0

số tài khoảnGiá EXT
Kulas inc20.000000 20.000000
(110132.552, 184793.7]476998.750000 101711.287500
(124778.0, 184794.0]231499.208970 27037.449673
Tối thiểu141962.000000 55733.050000
0%141962.000000 55733.050000
33,3%332759.333333 91241.493333
50%476006.500000 100271.535000
66,7%662511.000000 104178.580000
100%786968.000000 184793.700000
Tối đa786968.000000 184793.700000

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ả

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
1

số tài khoảnTênGiá EXTquantile_ex_1quantile_ex_2quantile_ex_3quantile_ex_4
0 141962 Herman LLCLLC 63626.03 (55733.049000000006, 89137.708](55732.0, 76471.0]Đồng0
1 146832 Kiehn-Spinka99608.77 (89137.708, 100271.535](95908.0, 100272.0]Vàng2
2 163416 Purdy-Kunde77898.21 (55733.049000000006, 89137.708](55732.0, 76471.0]Đồng0
3 218895 Kiehn-Spinka137351.96 (89137.708, 100271.535](95908.0, 100272.0]Vàng4
4 239344 Purdy-KundeLLC 91535.92 (89137.708, 100271.535](95908.0, 100272.0]Vàng1

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]

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
2

Màu bạc

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
3

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
4

Cá 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;

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
5

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
6

cắt

Bây giờ chúng ta đã thảo luận về cách sử dụng

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
5, chúng ta có thể chỉ ra cách
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
4.

Sự khác biệt chính là

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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,

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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

s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
4. Chúng ta cũng có thể sử dụng
s = df.groupby(pd.cut(df['percentage'], bins=bins)).size()
print (s)
percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64
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;

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?

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:

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
7

số tài khoảnTênGiá EXTcut_ex1
0 141962 Herman LLCLLC 63626.03 (55733.049000000006, 89137.708]
1 146832 Kiehn-Spinka99608.77 (89137.708, 100271.535]
2 163416 Purdy-Kunde77898.21 (89137.708, 100271.535]
3 218895 Kulas inc137351.96 kim cương
4 239344 Stokes LLCLLC 91535.92 vàng

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:

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
8

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
print (df)
   percentage  binned
0       46.50       5
1       44.20       5
2      100.00       6
3       42.12       5
9

Khô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ụ:

s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
0

s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
1

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 = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
2

số tài khoảnTênGiá EXTcut_ex1cut_ex2
0 141962 Herman LLCLLC 63626.03 vàngMộ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.
1 146832 Đầ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:
99608.77 Khô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.
2 163416 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ó.
77898.21 Khô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.
3 218895 Kulas inc137351.96 kim cươngCó 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ó.
4 239344 Stokes LLCLLC 91535.92 Khô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ụ:

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

s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
3

s = pd.cut(df['percentage'], bins=bins).value_counts()
print (s)
(25, 50]     3
(50, 100]    1
(10, 25]     0
(5, 10]      0
(1, 5]       0
(0, 1]       0
Name: percentage, dtype: int64
4

Herman LLC

(60000, 70000]

Kiehn-Spinka

màu bạc

  • (90000, 100000]
  • Purdy-Kunde

(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.