我有300000个字符串的pandas列。它由19个唯一的字符串组成。现在,我只想选择说该列的5000个元素,但每个字符串应均等出现。当然,这受到该列中字符串出现的最小/最大次数的限制。
我想也许我可以使用pandas.facotrize,但是我真的不知道如何遮盖该列。我是否不知道有一个numpy / pandas函数?
如果我将字符串分解,它就像:
strings=np.random.randint(19, size=300000)
现在,我可以用某种方式屏蔽该数组,以使每个数字均等出现,并且“ Trues”的数量为5000。理想的模式是:如果我也可以给出其中一个字符串出现在另一个字符串上的因素,但这仅用于添加。
答案 0 :(得分:1)
public void add(Tag tag1, Tag tag2) {
tag1.collisions.Add(tag2);
tag2.collisions.Add(tag1);
}
public void remove(Tag tag1, Tag tag2) {
if (collidesWith(tag1,tag2)) {
tag1.collisions.remove(tag2);
tag2.collisions.remove(tag1);
}
}
public boolean collidesWith(Tag tag1, Tag tag2) {
if (tag1.collisions.Contains(tag2) && tag2.collisions.Contains(tag1)) {
return true;
}
return false;
}
np.random.seed([3, 1415])
n = 300_000
strings = np.random.choice([*'ABCDEFGHIJKLMNOPQRS'], size=n)
df = pd.DataFrame(dict(Col=strings))
弄清楚您需要的实际数量,然后从每个组中进行采样
pandas.DataFrame.sample