我有这种格式的df,但是有更多行:
dftest = pd.DataFrame({'col1': ['A', 'A', 'B', 'C', 'A', 'A'],
'col2': ['catA', 'catB', 'dogA', 'dogB', 'snakeA', 'snakeB']})
对于每个animalA/animalB
配对,我想计算col1
是否是这两行的匹配项/不匹配项。我知道我可以用dftest.sort_values('col1')
对它们进行排序以将两行放在一起,但是不确定如何比较这之后的两行。
col2
有数百个值,但col1
仅可能有4个值。
例如,在带有catA/catB
的行中,col1
具有A/A
,因此这是一个匹配项。在带有dogA/dogB
的行中,col1
具有B/C
,因此这是不匹配的。如果带有animalA/animalB
的两行字母相同,则表示匹配。如果它们不同,那就是不匹配。
此小示例的所需输出:
countMatch = 2
countMismatch = 1
答案 0 :(得分:2)
您可以删除20190113
中的最后一个字母,按新字符串分组并计算唯一的col2
,即
col1