【发布时间】:2018-10-04 20:09:02
【问题描述】:
我有一个数据框,其中包含我提供给 Python 中的 ML 库的数据。我拥有的数据分为 5 个不同的任务,t1、t2、t3、t4、t5。我现在拥有的每项任务的数据都是不均匀的,为了简化这里是一个例子。
task, someValue
t1, XXX
t1, XXX
t1, XXX
t1, XXX
t2, XXX
t2, XXX
在上述情况下,我想删除任务标签为“t1”的随机行,直到“t1”的数量与“t2”的数量相等 所以代码运行后应该是这样的:
task, someValue
t1, XXX
t1, XXX
t2, XXX
t2, XXX
最干净的方法是什么?我当然可以只做 for 循环和 if 条件并使用随机数并计算每次迭代的出现次数,但该解决方案不会很优雅。当然必须有一种使用数据框功能的方法吗?到目前为止,这是我得到的:
def equalize_rows(df):
t = df['task'].value_counts()
mininmum_occurance = min(t)
【问题讨论】: