如何对DataFrame随机选取的指定元素的eta列执行随机乘法操作?
解决方法
直接用df.loc定位目标索引的eta列,配合生成对应数量的随机乘数就能完成操作,步骤如下:
- 生成与选中索引数量匹配的随机乘数(这里以范围
[0.5, 2.0]为例,你可以根据需求调整上下限):
# 生成50个0.5到2.0之间的随机浮点数 random_multipliers = np.random.uniform(low=0.5, high=2.0, size=numExtreme)
- 用
loc定位目标元素并执行乘法:
# 对选中索引的'eta'列应用随机乘法 df.loc[mod_indices, 'eta'] *= random_multipliers
完整代码示例
import numpy as np import pandas as pd # 假设你的df已经存在 numExtreme = 50 mod_indices = np.random.choice(df.index, numExtreme, replace=False) # 生成随机乘数 random_multipliers = np.random.uniform(low=0.5, high=2.0, size=numExtreme) # 执行修改 df.loc[mod_indices, 'eta'] *= random_multipliers
补充说明
loc是pandas中定位行列的可靠方法,能精准选中你指定索引的eta列- 如果需要整数范围的随机乘数,可以把
np.random.uniform换成np.random.randint,比如np.random.randint(low=1, high=5, size=numExtreme)
内容的提问来源于stack exchange,提问作者Alberto
相关产品推荐
相关产品推荐

