将列与 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中文网其他相关文章!