我有数据框
df = pd.DataFrame(data={1:[0,1,2,3,4],2:[5,6,7,8,9,]})
1 2
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
所以我可以将每个值乘以某个整数,例如2
df.mul(2)
1 2
0 0 10
1 2 12
2 4 14
3 6 16
4 8 18
但是我如何为每个值选择不同的随机值,所以我可以使df.mul(np.random.randint(1,3))
但这对所有的人来说都是一个随机值
我想要类似的结果
1 2
0 0 10
1 1 6
2 2 14
3 6 8
4 8 9
答案 0 :(得分:2)
定义形状相同的np.random.randint
并使用逐元素乘法:
df *= np.random.randint(1,3,df.shape)
答案 1 :(得分:0)
您只需生成随机值并将其应用于数组即可:
val = np.random.randint(1,3)
df.mul(val)
一个操作是标量;另一个是矢量化的。您正在将灵活的表示法(函数调用)交给矢量化运算符。