计算数据集的准确性

时间:2020-09-10 22:13:09

标签: mysql pandas count statistics left-join

我有两个表(X和Y),例如将一个足球运动员映射到一个团队。表X中的数据可靠,但我不确定表Y中数据的可靠性。表X有3,000行,表Y有1,000行。如何通过将表Y中的数据用作真集或超集来计算表Y中的映射的精确度?

表X

cnames[indx - 1]

表Y

PlayerID   | Name      | Team
007        | Sancho    | Dortmund
010        | Messi     | Barcelona
011        | Werner    | Chelsea
001        | De Gea    | Man Utd
009        | Lewan..ki | Bayern Mun
006        | Pogba     | Man Utd
017        | De Bruyne | Man City
029        | Harvertz  | Chelsea
005        | Upamecano | Leipzig

根据表X,我们可以看到只有玩家ID 006和017是正确的。但是,playerID 006映射到两个不同的团队时,部分准确。

1 个答案:

答案 0 :(得分:2)

您可以left join并使用条件逻辑来计算准确性。

在MySQL中,您可以这样表达:

select avg(y.playerID is not null) as accuracy_ratio
from x
left join y 
    on  y.playerID = x.playerID
    and y.name     = x.name
    and y.team     = x.team

这将为您提供介于01之间的值,该值表示准确率(如果需要百分比,可以将其乘以100)。

请注意,这某种程度上假设playerID唯一地标识了两个表中的记录。