我有一个数据框,其中特定列 (y1) 有 3 个可能的值:-9、1 和 2。
我想将 1000 个值的随机样本更改为 -9。
我已经尝试过这个:
df.loc[df.y1 == "2", 'y1'].sample(1000) =="-9"
但是它不起作用。
最佳答案
我认为你需要index
首先更改值,然后分配:
过滤的行数a
有问题小于 1000
,所以min
添加了 - 所以它返回长度 a
如果length < 1000
:
a = df.loc[df.y1 == 2, 'y1']
df.loc[a.sample(min(len(a.index), 1000)).index, 'y1'] = -9
谢谢,John Galt为了更好的解决方案,如果可能的话没有2
在专栏 y1
:
df.loc[(a if len(a.index) < 1000 else a.sample(1000)).index, 'y1'] = -9
关于python - Pandas 、 python 。替换列中值的随机子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45542422/