我想创建一个随机百分比列,其总计为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:如果有两行,则该随机值...
您可以使用np.random.dirichlet
和np.random.dirichlet
:
您可以使用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
: