为了账号安全,请及时绑定邮箱和手机立即绑定

在组中的每一行上随机

在组中的每一行上随机

DIEA 2021-09-14 21:09:45
我有一个以下数据帧:我试图将 disbursedamount 系列中的值填充为 SanctionedAmount 的 10% 到 20% 之间的任何随机值。这个逻辑需要应用在每组 accountid 上。Index  accountid  transdate  SanctionedAmount  balance  disbursedamount0        103602 2018-08-01              7806     6798                01        103602 2018-11-01              7806     6798                02        103606 2018-11-01              6274     7313                03        103606 2018-06-01              6274     7313                04        103606 2018-07-01              6274     7313                05        103606 2018-08-01              6274     7313                06        103609 2018-11-01              5726     8189                07        103609 2018-07-01              5726     8189                08        103609 2018-08-01              5726     8189                09        103609 2018-06-01              5726     8189                010       103617 2018-07-01              6549     7457                011       103634 2018-06-01              8835     7794                012       103637 2018-07-01              6920     6623                013       103644 2018-06-01              8481     8253                014       103645 2018-11-01              8220     9966                015       103645 2018-06-01              8220     9966                016       103645 2018-07-01              8220     9966                017       103645 2018-08-01              8220     9966                0预期输出:Index accountid transdate  SanctionedAmount  balance disbursedamount0   103602     2018-08-01     1000            798      1001   103602     2018-11-01     1000            798      2002   103606     2018-11-01     2000            313      2003   103606     2018-06-01     2000            313      4004   103606     2018-07-01     2000            313      2005   103606     2018-08-01     2000            313      3006   103609     2018-11-01     5000            189      5007   103609     2018-07-01     5000            189      100
查看完整描述

3 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

你想在这里使用随机函数是一个简单的选择


   from random import random

   df.disbursedamount = df.SanctionedAmount * (random()/5)


查看完整回答
反对 回复 2021-09-14
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

从您的预期输出来看,您似乎不需要“应用于每组 accountid”的逻辑,即不需要groupby. 所以每一行的解决方案是


import pandas as pd

import numpy as np


# df = the_DataFrame_you_have

df['disbursedamount'] = df['SanctionedAmount'] * np.random.uniform(0.1, 0.2)


查看完整回答
反对 回复 2021-09-14
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

您可以简单地乘以SanctionedAmount从 0.1 和 0.2 之间的均匀分布中随机选择的数字。

df['disbursedamount'] = df['SanctionedAmount'] * np.random.uniform(0.10, 0.20)


查看完整回答
反对 回复 2021-09-14
  • 3 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号