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. 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']
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]