样品测向:
ID Match1 Match2 Match3 Match4 Match5
1 Yes No Yes Yes Yes
2 Yes No Yes Yes No
2 Yes No No Yes Yes
3 No Yes Yes Yes No
3 No Yes No No No
4 Yes No Yes No No
4 Yes No Yes Yes Yes
预期DF:
ID Match1 Match2 Match3 Match4 Match5 Final_Match
1 Yes No Yes Yes Yes Clear
2 Yes No Yes Yes No Unclear
2 Yes No No Yes Yes Unclear
3 No Yes Yes Yes No Clear
3 No Yes No No No Unclear
4 Yes No Yes No No Unclear
4 Yes No Yes Yes Yes Clear
问题陈述:
Clear
放入Final_Match
列(示例ID 1)如果ID是重复的,那么在Match1到Match5列中的ID计数Yes
内,取较大的“Yes”为该列放入Clear
,为另一列放入Unclear
(示例ID 3&4
如果ID是重复的,那么在Match1到Match5列中的ID计数Yes
内,如果它们具有相等的“Yes”,则将Unclear
放在这两个列中(示例ID 2)
我找不到任何关于如何在ID内求解的信息?
另一种方法是:
p.S如果需要,可以删除
sum_yes
列。你知道吗使用
pandas.DataFrame.groupby
:说明:
len(d) == 1
:如果不重复,则添加Clear
counter = (d.filter(like='Match') == 'Yes').sum(1)
:统计每列中“是”的数目counter.nunique() == 1
:如果所有行都有相同数量的“是”,那么所有行都被标记为“不清楚”counter.apply(lambda x: 'Clear' if x == max(counter) else 'Unclear').tolist()
:如果行有不同的“Yes”计数,用“Clear”标记最高的,用“Unclear”标记其余的您也可以通过使用
Groupby.rank
来实现这一点:相关问题 更多 >
编程相关推荐