繁体   English   中英

根据另一列的值更改 dataframe 列值的百分比

[英]Change a percentage of dataframe column values according to the value of another column

我有一个类似于下面的 dataframe,其中活动采用二进制值表示是否需要医生:

d = {'activity': ['Check-up', 'Assessment', 'Medication', 'Medication', 'Medication'], 'doctor_requirement': [1, 0,0,0,0]}
df = pd.DataFrame(data=d)
df
    activity    doctor_requirement
0   Check-up    1
1   Assessment  0
2   Medication  0
3   Medication  0
4   Medication  0

我想考虑一定比例的'Medication'活动需要医生。 也就是说,将二进制 1 分配给doctor_requirement要求,以获得'Medication'访问的百分比。 例如,50% 的'Medication'活动需要医生(即医生要求doctor_requirement = 1 )。

非常感谢您的帮助,我一直在网上寻找,似乎无法找到如何应用这样的条件。 提前致谢!

如果你想要 50% 的机会,那么你可以使用:

df.loc[df['activity']=='Medication','doctor_requirement'] = np.random.choice([0,1],(df['activity']=='Medication').sum())

如果您希望控制 0 和 1 的概率,可以使用np.random.choicep参数来指定赔率。

df.loc[df['activity']=='Medication','doctor_requirement'] = np.random.choice([0,1],(df['activity']=='Medication').sum(),p=[0.99,0.01])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM