我有这个数据框:
class number_of_lessons
0 C 15
1 A 5
2 B 8
3 E 11
4 N 12
5 F 5
6 D 10
我想从该表中随机选择一些行,例如新数据框中的课程总数为20。
作为输出示例,我们可以:
class number_of_lessons
0 C 15
1 A 5
或
class number_of_lessons
1 A 5
5 F 5
6 D 10
我尝试了太多的事情,但是没有什么是正确的。知道怎么做吗?
答案 0 :(得分:0)
尝试下一个代码:
df = pd.DataFrame({'class': ['C', 'A', 'B', 'E', 'N', 'F', 'D'], 'number_of_lessons':[15, 5, 8, 11, 12, 5, 10]})
classes = []
lessons = 0
for i in df.sample(frac=1).iterrows():
if (lessons + i[1]['number_of_lessons']) <= 20:
lessons += i[1]['number_of_lessons']
classes.append(i[1]['class'])
if lessons == 20:
break
print(df[df['class'].isin(classes)])
输出:
class number_of_lessons
2 B 8
4 N 12