删除之前出现两个列值的行



我有一个数据框架,看起来像这样:

user    institution      group       result      quiz
a       Company          1a          True        zzz
a       Company          1a          False       yyy
a       Company          1a          True        yyy
a       Company          1a          False       www
b       Company          1a          False       www
c       Company          1b          False       yyy
c       Company          1b          True        yyy
d       Company          1c          True        qqq
d       Company          1c          True        zzz
d       Company          1c          True        yyy
e       Company          1c          False       zzz
e       Company          1c          False       yyy
e       Company          1c          False       yyy

机构是相同的(在原始数据集中我有多个机构,但我将数据集拆分为多个数据帧,如上图)。用户可以多次回答多个测验。每个用户只能属于一个组。

我怎么能只考虑每个用户回答的每个测试的第一个答案?

user    institution      group       FirstResult      quiz
a       Company          1a          True             zzz
a       Company          1a          False            yyy
a       Company          1a          False            www
b       Company          1a          False            www
c       Company          1b          False            yyy
d       Company          1c          True             qqq
d       Company          1c          True             zzz
d       Company          1c          True             yyy
e       Company          1c          False            zzz
e       Company          1c          False            yyy

我尝试使用df.drop天真地手动删除行,但是当数据框很大时,这是不可能的。条件基本上是userquiz出现第二次、第三次、第n次。

Pandas具有DataFrame.drop_duplicates()功能:

deduped = df.drop_duplicates(subset=["user", "institution", "group", "quiz"], keep="first")

最新更新