Python 如何向数据帧中的元素添加随机生成的数字

Python 如何向数据帧中的元素添加随机生成的数字,python,pandas,numpy,Python,Pandas,Numpy,我试图从pandas数据帧(Python)中的现有元素(浮动)中添加/减去一个随机数 index是一个随机子集索引,modify\u columns是我希望修改的列的列表。我的数据框如下(active\u set.loc[索引,修改列]): 我想从这些值中加上或减去一个随机生成的整数(1或1) 我尝试使用(2*np.random.randint(0,2,size=(count))-1)生成这些随机数的数组,并将它们相加: active\u set.loc[index,modify\u colum

我试图从pandas数据帧(Python)中的现有元素(浮动)中添加/减去一个随机数


index
是一个随机子集索引,
modify\u columns
是我希望修改的列的列表。我的数据框如下(
active\u set.loc[索引,修改列]
):

我想从这些值中加上或减去一个随机生成的整数(1或1)

我尝试使用
(2*np.random.randint(0,2,size=(count))-1)
生成这些随机数的数组,并将它们相加:


active\u set.loc[index,modify\u columns]=active\u set.loc[index,modify\u columns]+(2*np.random.randint(0,2,size=(count))-1)

这不起作用,因为存在
ValueError:无法强制为Series,长度必须为1:给定180
。我想我可以简单地用随机数创建第二个数据帧,或者进行迭代,但这些数据帧似乎效率低下,而且必须有一种方法可以使用
。应用
,所以我想寻求一些关于如何实现这一点的帮助。

更一般的


如果要添加不同的随机值,可以使
random.randint
的大小与列的大小相同

为二维数组创建与索引长度相同的数组

arr = 2*np.random.randint(0,2,size=(len(indices), len(modify_columns)))
active_set.loc[indices,modify_columns] += arr

最简单的解决方案是使用
pandas.DataFrame.add
函数

vector_to_add = 2*np.random.randint(0, 2, size=(count)) - 1
df.loc[indices, modify_columns] = df.loc[indices, modify_columns].add(vector_to_add, axis='index')

你能显示你期望的输出是什么吗?
active\u set.loc[index,modify\u columns]+=np.random.randint(-1,2,size=len(index))
@Doyousketch2-好主意。@jezrael抱歉我写的是:/
arr = 2*np.random.randint(0,2,size=(len(indices), len(modify_columns)))
active_set.loc[indices,modify_columns] += arr
vector_to_add = 2*np.random.randint(0, 2, size=(count)) - 1
df.loc[indices, modify_columns] = df.loc[indices, modify_columns].add(vector_to_add, axis='index')