首页 >后端开发 >Python教程 >如何有效地对 Pandas 列进行分箱并对每个分箱中的值进行计数?

如何有效地对 Pandas 列进行分箱并对每个分箱中的值进行计数?

Susan Sarandon
Susan Sarandon原创
2024-12-09 19:17:17335浏览

How to Efficiently Bin a Pandas Column and Count Values in Each Bin?

将列与 Pandas 合并

在数据分析中,将数据分入类别以简化其表示和分析通常很有用。这是处理数字数据时的常用技术,例如处理百分比时。

假设我们有一个名为“percentage”的数据框列,其中包含数值,如下所示:

df['percentage'].head()
46.5
44.2
100.0
42.12

要对此列进行分箱并获取每个分箱的值计数,我们可以使用 pd.cut 函数。有两种方法可以实现此目的:

将 pd.cut 与 value_counts 结合使用:

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

使用 np.searchsorted 和 groupby:

df['binned'] = np.searchsorted(bins, df['percentage'].values)
print(df.groupby(df['binned']).size())

两种方法都会返回以下内容输出:

percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64

此输出表示 bin (0, 1]、(1, 5]、(5, 10] 和 (10, 25]) 中没有值。三个值落入在 bin (25, 50] 中,并且有一个值落在 bin (50, 100] 中。

以上是如何有效地对 Pandas 列进行分箱并对每个分箱中的值进行计数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn