我在 Python 中有两个随机数数组:
vn = np.random.normal(20,5,500);
vu = np.random.uniform(17,25,500);
我正在尝试使用 pandas 创建一个频率表以按范围计算出现次数,但我真的不知道该怎么做,示例输入和输出如下所示:
输入:
vn: [2,3,6,6,7,8,9,9,10,7]
vu: [1,1,2,3,6,7,7,7,8,9]
输出:
Range count_vn count_vu
(0, 5] 2 4
(5, 10] 8 6
请您参考如下方法:
IIUC:
In [228]: df.apply(lambda x: pd.cut(x, bins=[0,5,10]).value_counts()).add_prefix('count_')
Out[228]:
count_vn count_vu
(5, 10] 8 6
(0, 5] 2 4
或@ayhan 提供的更好的解决方案:
In [26]: df.apply(pd.Series.value_counts, bins=[0,5,10])
Out[26]:
vn vu
(5.0, 10.0] 8 6
(-0.001, 5.0] 2 4
它以某种方式产生了“奇怪的”垃圾箱...
