这是一个复杂的问题,我无法解决这个问题,我非常感谢你在这方面的帮助
下面的数据帧是根据'Loc'(groupby)和'Category'从pandas函数DataFrame.duplicated()
生成的,重复记录被相应地标记为True/False
Number Loc Category Date IsDuplicate
-----------------------------------------------------
1 A jetski 01/01/2020 False
2 A kayak 01/02/2020 False
3 A jetski,kayak 01/04/2020 False
4 B jetski 01/05/2020 False
5 B jetski 01/07/2020 True
6 C kayak 01/08/2020 False
7 C kayak 01/09/2020 True
8 C jetski 01/10/2020 False
我的期望是基于“Loc”(groupby)、“Category”和“IsDuplicate”创建另一个列,以仅表示实际重复的值。只有虚假数据才应标记为“不适用”
要点:
分组位置
任何地点:
a。如果“IsDuplicate”==True,则匹配“category”列并仅将匹配行返回为True/False
b。如果发现任何其他错误记录,请返回“不适用”
对于位置中的任何唯一假值,返回“不适用”
预期产出:
Number Loc Category Date IsDuplicate Only_Dupes
---------------------------------------------------------------------
1 A jetski 01/01/2020 False Not Applicable
2 A kayak 01/02/2020 False Not Applicable
3 A jetski,kayak 01/04/2020 False Not Applicable
4 B jetski 01/05/2020 False False
5 B jetski 01/07/2020 True True
6 C kayak 01/08/2020 False False
7 C kayak 01/09/2020 True True
8 C jetski 01/10/2020 False Not Applicable
如果需要进一步澄清,请告诉我。我感谢你的帮助
您可以尝试创建两个条件,一个用于检查重复项,另一个用于获取按Loc和Category分组的列类别的外观,然后使用
np.where
分配duplicated()
的结果,其中计数大于1,否则Not Applicable
或类似逻辑,但在转换中链接它们:
相关问题 更多 >
编程相关推荐