我正在处理一个文本分类问题,这个问题训练得很好,但我的分类非常不平衡,阻碍了结果。最大的两个类别比最小的类别大80倍以上,所以这两个类别的分类数量不公平。我需要从每个类别中选择n
行(任意大)。我的数据集相当大(10万行,1千个独特类别)
假设数据帧是:
data = {
'category':['2','2','2','2','4','4','4','4','4','4','6','6','6'],
'text':['t1','t2','t3','t4','t5','t6','t7','t8','t9','t10','t11','t12','t13']
}
df = pd.DataFrame(data)
如何为每个类别选择n
个随机行
我试图找到一些方法来使用np.random.choice
来选择n
随机行,但是我找不到一种方法来获取该索引作为下拉索引
n = 3
的理想输出如下:
>>> df.head(9)
category text
0 2 t3
1 6 t11
2 6 t13
3 4 t6
4 2 t1
5 4 t9
6 4 t8
7 2 t4
8 6 t12
您可以使用
sample
和groupby().head()
:输出:
相关问题 更多 >
编程相关推荐