按组按比例在pandas列中分配随机值

时间:2018-10-04 11:01:53

标签: python python-3.x pandas numpy pandas-groupby

df数据框如下:

Caught exception evaluating: it.launcher.descriptor==d in /computer/jenkins-slave/configure. Reason: java.lang.reflect.InvocationTargetException
java.lang.AssertionError: class hudson.plugins.sshslaves.SSHLauncher is missing its descriptor
    at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1514)
    at hudson.model.AbstractDescribableImpl.getDescriptor(AbstractDescribableImpl.java:42)
Caused: java.lang.reflect.InvocationTargetException

无论类别是A,在它们中,给定每种结果类型的比例分别为30、40、30和30,40,30,以随机顺序分配三个结果(Pass,Fail,Hold)值。 对于具有不同比例的其他类别也是如此。 有什么快速的方法吗?

当前我正在使用

ID   Category   Result
1     A          ...
2     B          ...
3     B          ...
4     C          ...

将数据分成比例,然后

np.split(df[cond],int([.3*len(df[cond])]),int([.7*len(df[cond])]))

获得全套。

1 个答案:

答案 0 :(得分:2)

这是个主意。您可以将import subprocess file= '"C:/Users/akg/Desktop/file 1.png"' subprocess.call(['cmd','/c','start '+file]) GroupBy一起使用。

这不能保证您的比例保持不变。例如,如果特定类别只有一行,那么如果您的权重全都不为零,则不能保证保留比例。即使可以 保留,逻辑仍会使用“随机”数字来选择每个值。您可以说的是,当您的行数趋于无穷大时,比率将趋向于所提供的权重。

np.random.choice
相关问题