Python 在随机数生成器中,有没有一种方法可以为样本分配概率?

Python 在随机数生成器中,有没有一种方法可以为样本分配概率?,python,Python,我有一个每月汇总的财务数据集。我知道每种测量的真实世界平均值 我正在尝试使用Python构建一些虚拟事务数据。我不希望虚拟事务数据完全是随机的。我想用真实世界的平均值来模拟它 如果从实际数据来看,每月总利润为1000美元,总交易额为5笔,那么每笔交易的平均利润为200美元。 我想创建一个虚拟的交易,它是围绕200美元这个真实世界的平均值来建模的。 我就是这样做的: import pandas as pd from random import gauss bucket = [] for _ i

我有一个每月汇总的财务数据集。我知道每种测量的真实世界平均值

我正在尝试使用Python构建一些虚拟事务数据。我不希望虚拟事务数据完全是随机的。我想用真实世界的平均值来模拟它

如果从实际数据来看,每月总利润为1000美元,总交易额为5笔,那么每笔交易的平均利润为200美元。 我想创建一个虚拟的交易,它是围绕200美元这个真实世界的平均值来建模的。 我就是这样做的:

import pandas as pd
from random import gauss

bucket = []

for _ in range(5):
    value = [int(gauss(200,50))]
    bucket += value

transactions = pd.DataFrame({ 'Amount' : bucket})
现在,我面临的挑战是,我也必须将标识符随机化

例如,我知道总共有三位买家。我们叫他们A、B和C。 这三个已经完成了这5个事务,我想在创建虚拟事务数据时随机分配它们。然而,我也知道A很可能比B和C做更多的交易。为了使我的虚拟数据更接近现实生活场景,我想在我的虚拟交易数据中为这些买家的出现分配概率

假设我想要这样:

A:60%的外观 B:20%外观 C:20%外观


我怎样才能做到这一点呢?

你问的不是概率。你想要100%的购买机会,60%的购买机会。同样,将dict作为输入,每个用户都有购买的可能性。然后在你的基础上创建一个包含这些可能性的列表,并从列表中随机选择一个买家。如下所示:

随机导入
#购买用户的百分比
买入百分比={'A':0.6,'B':0.2,'C':0.2}
#购买数量
基数=100
购买清单=清单()
对于买方,购买百分比中的百分比。项目()
buy_user=[范围内(0,int(百分比*基数))的买家]
购买列表。扩展(购买用户)
对于范围内的uu(0,基数):
#随机获得买家,但确保您的比例保持不变
买家=随机选择(购买清单)
#您获得购买价格的代码如下所示

更新:

或者,可以使用下面链接中给出的答案。我认为这个解决方案更好。

你问的不是概率。你想要100%的购买机会,60%的购买机会。同样,将dict作为输入,每个用户都有购买的可能性。然后在你的基础上创建一个包含这些可能性的列表,并从列表中随机选择一个买家。如下所示:

随机导入
#购买用户的百分比
买入百分比={'A':0.6,'B':0.2,'C':0.2}
#购买数量
基数=100
购买清单=清单()
对于买方,购买百分比中的百分比。项目()
buy_user=[范围内(0,int(百分比*基数))的买家]
购买列表。扩展(购买用户)
对于范围内的uu(0,基数):
#随机获得买家,但确保您的比例保持不变
买家=随机选择(购买清单)
#您获得购买价格的代码如下所示

更新:

或者,可以使用下面链接中给出的答案。我认为这个解决方案更好。

您可以使用
随机选择(['A'、'A'、'A'、'B'、'C'])
-因此此列表中60%是
A
,20%是
B
,20%是
C
。这样,
A
将被更频繁地选择。@furas-是的,我可以,但这是不可伸缩的。如果我有一个大的客户列表和每个客户的非常精确的概率数会怎么样?您是否阅读了
random.choices
的Python文档?在谷歌搜索时,我找不到一个不那么复杂的解决方案(如random.choices)。谢谢你可以使用
random.choice(['A','A','A','B','C'])
-所以这个列表的60%是
A
,20%是
B
,20%是
C
。这样,
A
将被更频繁地选择。@furas-是的,我可以,但这是不可伸缩的。如果我有一个大的客户列表和每个客户的非常精确的概率数会怎么样?您是否阅读了
random.choices
的Python文档?在谷歌搜索时,我找不到一个不那么复杂的解决方案(如random.choices)。谢谢