产生一个具有随机百分比之和的列] >>

问题描述 投票:2回答:2

我想创建一个随机百分比列,其总计为1

当前表:

Col1    Value
A        100
B        100

想要的示例1:如果有两行,那么随机值可以是任意数字,但总数必须为1

Col1    Value  Random  New Value
A        100    0.7    70
B        100    0.3    30
                 1 

想要的示例2:三行样本

Col1    Value  Random  New Value
A        100    0.2     20
B        100    0.1     10
C        100    0.7     70
                 1

我想创建一个随机百分比列,该列总计为1当前表:Col1值A 100 B 100想要的示例1:如果有两行,则该随机值...

python python-3.x pandas numpy
2个回答
1
投票

您可以使用np.random.dirichletnp.random.dirichlet


0
投票

您可以使用import pandas as pd import numpy as np df = pd.DataFrame({'Col1': list("ABC"), 'Value': [100]*3}) df['random'] = np.around(np.random.dirichlet (np.ones(df.shape[0]),size=1)[0], decimals = 1) df['New value'] = (df['Value']*df['random']).astype(int) print(df) 功能 Col1 Value random New value 0 A 100 0.4 40 1 B 100 0.3 30 2 C 100 0.3 30

© www.soinside.com 2019 - 2024. All rights reserved.