將列與 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中文網其他相關文章!