如何对每个数据框元素python进行随机操作

时间:2020-05-16 21:05:44

标签: python pandas

我有数据框

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

2 个答案:

答案 0 :(得分:2)

定义形状相同的np.random.randint并使用逐元素乘法:

df *= np.random.randint(1,3,df.shape)

答案 1 :(得分:0)

您只需生成随机值并将其应用于数组即可:

val = np.random.randint(1,3)
df.mul(val)

一个操作是标量;另一个是矢量化的。您正在将灵活的表示法(函数调用)交给矢量化运算符。