通常分布出现或计数

数据挖掘 Python scikit-学习 数据集 scipy
2022-03-10 04:54:16

我正在创建一个销售数据的模拟。其中一列是salesperson_id每个 id 可以出现多次(一个销售人员可以有多个销售)。我想以这样一种方式生成此列,如果我创建一个销售计数(不是总销售额)分布图表salesperson_id,它将是一条正态曲线。

假设我有一个唯一的数组salesperson_idsalespersons我想生成n记录数。例如,我有 6 个销售人员,我想生成总共 14 条记录。这将是他们的计数分布:

id  count
---------
A   1
B   2
C   4
D   4
E   2
F   1

如果以条形图排列,这看起来像一个正态分布。我还需要一些方法来控制图表的“平坦度”。

1个回答

这是一种方法:

from collections import Counter

from numpy.random import binomial

# Generate mock sales data by randomly sampling if a salesperson makes a sale  
p = 0.5 # Control "flatness" of distribution
n_records = 14
salesperson_id = binomial(n=100, p=p, size=n_records).tolist() # Binomial is a reasonable approximation for a discrete normal distribution
count_per_salesperson = Counter(salesperson_id)
id, count = zip(*count_per_salesperson.items())