Вы можете использовать df.apply()
с np.random.randint()
:
df['disbursedamount'] = df.apply(lambda x: np.random.randint(0.1*x['SanctionedAmount'], 0.2*x['SanctionedAmount']), axis=1)
Используя np.random.seed(0)
, это дает:
accountid transdate SanctionedAmount balance disbursedamount
Index
0 103602 2018-08-01 7806 6798 1464
1 103602 2018-11-01 7806 6798 1339
2 103606 2018-11-01 6274 7313 819
3 103606 2018-06-01 6274 7313 986
4 103606 2018-07-01 6274 7313 636
5 103606 2018-08-01 6274 7313 904
6 103609 2018-11-01 5726 8189 642
7 103609 2018-07-01 5726 8189 1044
8 103609 2018-08-01 5726 8189 968
9 103609 2018-06-01 5726 8189 886
10 103617 2018-07-01 6549 7457 1140
11 103634 2018-06-01 8835 7794 1434
12 103637 2018-07-01 6920 6623 779
13 103644 2018-06-01 8481 8253 1022
14 103645 2018-11-01 8220 9966 1422
15 103645 2018-06-01 8220 9966 1499
16 103645 2018-07-01 8220 9966 1359
17 103645 2018-08-01 8220 9966 894