python - 在 pandas 数据框中搜索不需要的值

标签 python pandas

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

(顺便说一句。我知道重复项,但我知道如何处理它。) 该数据框只是一个示例,该方法应该适用于具有任意数量作业和学生的数据框。我不知道如何继续。帮助:(

最佳答案

这是使用 .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

关于python - 在 pandas 数据框中搜索不需要的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50875705/

相关文章:

python - 在 pandas 中插入日期

python - 我可以使用什么在 Python 的终端中返回一个换行符?

python - 为什么我在使用 aic_min_order 时得到 'The computed initial AR coefficients are not stationary'?

Python for 循环问题

python - 如何在没有数据类型的情况下从 DataFrame 打印字符串值

python - pandas,如何减少具有相同值的行数据框?

python - 使用默认关系撤消 `lazyload()`

python - 如何在 pygame 中进行平滑移动 + 旋转?

python - 将行与数据帧 pandas 中的下一行合并

python - pandas 数据框中一列中的数字分组