在datafram中搜索不需要的值

2024-09-27 07:28:55 发布

您现在位置:Python中文网/ 问答频道 /正文

Python初学者在这里!我正在尝试创建一个简单的程序来给学生评分(在丹麦的评分系统中,我知道这很奇怪)。这是我的数据框架,包含了学生和他们的成绩,我希望能够在作业列中搜索不需要的值。我要保留的值是12、10、7、4、2、0和-3。你知道吗

   StudentID              Name  Assignment1  Assignment2  Assignment3
0    s123456  Michael Andersen            7            7            4
1    s123789  Bettina Petersen           12           11           10
2    s123468    Thomas Nielsen           -3            7            2
3    s123579      Marie Hansen            0            2            2
4    s123588     Amalie Jensen           10            5            7
5    s123588     Amalie Jensen           10            7            7
6    s123540    Helena Bentsen           10           10           12
7    s123019      Bent Knudsen            4            4            4
8    s123019  Mattias Kjeldsen            4            4           20 
9    s120079     Robert Madsen            4            7           10
10   s129834     Robert Madsen           12           12           12
11   s120068    Camilla Madsen            7            7           10

具有不需要的值的行应如下所示:

   StudentID              Name  Assignment1  Assignment2  Assignment3
1    s123789  Bettina Petersen           12           11           10
4    s123588     Amalie Jensen           10            5            7
8    s123019  Mattias Kjeldsen            4            4           20

(顺便说一句,我知道复制品,但我知道如何处理。) 这个数据帧只是一个例子,这个方法应该适用于任何数量的作业和学生的数据帧。我不知道怎么继续。帮助:(


Tags: 数据name作业评分学生jensenstudentidassignment2
1条回答
网友
1楼 · 发布于 2024-09-27 07:28:55

这里有一种使用.isin的方法。步骤:

  1. 存储要保留的值。你知道吗
  2. 标记包含等级的列。你知道吗
  3. 检查每个年级列中的每个条目是否都是要保留的值df[asmt_cols].isin(values_to_keep)。你知道吗
  4. 标记只有所需值的行:df[asmt_cols].isin(values_to_keep).all(1)。你知道吗
  5. ~求反并过滤。你知道吗

values_to_keep = [12, 10, 7, 4, 2, 0, -3]
asmt_cols = [c for c in df.columns if c.startswith("Assignment")]

unwanted = df[~df[asmt_cols].isin(values_to_keep).all(1)]

# Out[99]:
# StudentID      Name  Assignment1  Assignment2  Assignment3
# 1 s123789   Bettina  Petersen           12           11           10
# 4 s123588    Amalie    Jensen           10            5            7
# 8 s123019   Mattias  Kjeldsen            4            4           20

相关问题 更多 >

    热门问题