【问题标题】:Python: Select random rows from a dataframe for which the sum of a specific column equals XPython:从特定列的总和等于 X 的数据框中选择随机行
【发布时间】:2020-06-08 17:10:26
【问题描述】:

我有这个数据框:

  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

我尝试了太多东西,但没有一个是正确的。知道怎么做吗?

【问题讨论】:

标签: python sql dataframe


【解决方案1】:

尝试下一个代码:

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

【讨论】:

  • 这种方法解决了您的问题吗?
猜你喜欢
  • 2023-01-18
  • 1970-01-01
  • 2018-01-19
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-06
  • 1970-01-01
相关资源
最近更新 更多