首頁 >後端開發 >Python教學 >如何對 Pandas DataFrame 欄位進行分箱並對每個分箱中的值進行計數?

如何對 Pandas DataFrame 欄位進行分箱並對每個分箱中的值進行計數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-16 19:21:12787瀏覽

How Can I Bin a Pandas DataFrame Column and Count Values in Each Bin?

將列與 Pandas 分箱

資料操作通常涉及將值組織到有意義的群組或箱中。在這種情況下,我們將探索如何使用 pandas 對包含數值的欄位進行分箱。

問題:

給定一個包含數值的資料框列,我們想要將其視覺化為具有數值計數的容器。具體來說,我們如何確定每個 bin 內的值的數量?

答案:

選項 1:使用 pandas.cut

pandas.cut 函數可用於建立 bin。以下是一個範例:

import pandas as pd

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = pd.cut(df['percentage'], bins)
df['binned'].value_counts()

這將根據指定的間隔建立 bin,並傳回包含每個值的 bin 所分配的序列。使用 value_counts,我們可以計算每個 bin 中出現的次數。

選項2:使用numpy.searchsorted

另一種方法是使用numpy.searchsorted:

import numpy as np

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = np.searchsorted(bins, df['percentage'].values)
df['binned'].value_counts()

此函數傳回每個值所屬的第一個bin 的索引。然後我們可以使用 value_counts 來確定 bin 計數。

選項 3:組合 Groupby 和 Size

我們也可以使用 pandas 的 groupby 和 size 方法:

s = df.groupby(pd.cut(df['percentage'], bins)).size()

這將按箱分配對資料框進行分組,並傳回一個序列,其中包含每個值的數量bin.

結論:

這些方法使我們能夠有效地對數字列進行分箱並獲取每個分箱的值計數,從而深入了解值的分佈。

以上是如何對 Pandas DataFrame 欄位進行分箱並對每個分箱中的值進行計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn