当前位置:  开发笔记 > 编程语言 > 正文

大熊猫随机取代k%

如何解决《大熊猫随机取代k%》经验,为你挑选了1个好方法。

具有2列例如一个简单的熊猫数据帧idvalue其中value要么01我想随机替换10%所有的value==10.

如何用熊猫实现这种行为?



1> piRSquared..:

pandas 回答

用于仅query过滤dfvalue == 1

使用sample(frac=.1)采取这些的10%

使用结果的索引来指定零


df.loc[
    df.query('value == 1').sample(frac=.1).index,
    'value'
] = 0

另类numpy答案

得到的,其中布尔数组df['value']1

分配10%零和90%零的随机数组


v = df.value.values == 1
df.loc[v, 'value'] = np.random.choice((0, 1), v.sum(), p=(.1, .9))

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有