假设我有以下由一些学生信息组成的原始数据帧:

STUDENT_ID  SEMESTER    COURSE_NAME
50694           21          X1
50694           21          X2
50285           21          X3
51442           21          X4
51600           21          X5
50285           21          X6
50494           21          X7
50494           21          X8
50802           21          X9
50802           21          X10
50802           21          X11
50285           21          X12

我想把它们按STUDENT_ID分为(1)组,这样每个学生的课程都可以分组,如下所示:

STUDENT_ID  SEMESTER    COURSE_NAME
50694           21          X1
50694           21          X2
50494           21          X7
50494           21          X8
50285           21          X3
50285           21          X6
50285           21          X12
50802           21          X9
50802           21          X10
50802           21          X11
51442           21          X4
51600           21          X5

然后在STUDENT_ID列中用一个特定值将其拆分,比如50802,得到:

STUDENT_ID  SEMESTER    COURSE_NAME
50694           21          X1
50694           21          X2
50494           21          X7
50494           21          X8
50285           21          X3
50285           21          X6
50285           21          X12

STUDENT_ID  SEMESTER    COURSE_NAME
50802           21          X9
50802           21          X10
50802           21          X11
51442           21          X4
51600           21          X5

非常感谢您的帮助.

推荐答案

第一步是简单的sort_values.第二种情况尚不清楚,但可以使用groupby:

dfs = [g for _,g in
(df
 .sort_values(by='STUDENT_ID')
 .groupby(df['STUDENT_ID'].lt(50802))
)]

输出:

[    STUDENT_ID  SEMESTER COURSE_NAME
 8        50802        21          X9
 9        50802        21         X10
 10       50802        21         X11
 3        51442        21          X4
 4        51600        21          X5,
     STUDENT_ID  SEMESTER COURSE_NAME
 2        50285        21          X3
 5        50285        21          X6
 11       50285        21         X12
 6        50494        21          X7
 7        50494        21          X8
 0        50694        21          X1
 1        50694        21          X2]

Python相关问答推荐

将C struct 的指针传递给Python中的ioctel

自动编码器和极坐标

Polars -转换为PL后无法计算熵.列表

如何在超时的情况下同步运行Matplolib服务器端?该过程随机挂起

用Python获取HTML Span类中的数据

无法使用python.h文件; Python嵌入错误

在应用循环中间保存pandas DataFrame

在Pandas框架中截短至固定数量的列

具有症状的分段函数:如何仅针对某些输入值定义函数?

如何处理嵌套的SON?

Python Hashicorp Vault库hvac创建新的秘密版本,但从先前版本中删除了密钥

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

带条件计算最小值

什么相当于pytorch中的numpy累积ufunc

django禁止直接分配到多对多集合的前端.使用user.set()

合并帧,但不按合并键排序

在Python中使用if else或使用regex将二进制数据如111转换为001""

matplotlib + python foor loop

未调用自定义JSON编码器

LocaleError:模块keras._' tf_keras. keras没有属性__internal_'''