根据数据框列中的配对匹配/不匹配进行计数

时间:2019-01-23 08:26:11

标签: python pandas

我有这种格式的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

1 个答案:

答案 0 :(得分:2)

您可以删除20190113中的最后一个字母,按新字符串分组并计算唯一的col2,即

col1