2024-05-13 12:09:45 发布
网友
我想创建一个随机百分比列,其中的总和应为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
您可以使用^{}和^{}:
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
您可以使用numpy函数random.randint:
numpy
random.randint
df = pd.DataFrame({'Value': [100, 100, 100]}) nums = np.random.randint(10, size=len(df)) df['Random'] = nums / nums.sum() df['New'] = df['Value'] * df['Random'] df.loc['Sum', :] = df.sum()
Value Random New 0 100.0 0.1250 12.50 1 100.0 0.3125 31.25 2 100.0 0.5625 56.25 Sum 300.0 1.0000 100.00
您可以使用^{} 和^{} :
输出:
您可以使用
numpy
函数random.randint
:输出:
相关问题 更多 >
编程相关推荐