根据 python pandas 数据框的两列中的值计算精度和召回率?

Calculate precision and recall based on values in two columns of a python pandas dataframe?

我有以下格式的数据框:

Column 1 (Expected Output) | Column 2 (Actual Output)
[2,10,5,266,8]             |   [7,2,9,266]             
[4,89,34,453]              |   [4,22,34,453]

我想找出实际输入中预期的项目数。例如,对于第 1 行,预期和实际输出中只有 2 和 266,这意味着精度 = 2/5 和召回率 = 2/5。

因为我有超过 500 行,我想找到某种公式来计算每行的精度和召回率。

像这样设置你的 df:

df = pd.DataFrame({"Col1": [[2,10,5,266,8],[4,89,34,453]],
                   "Col2":[[7,2,9,266],[4,22,34,453]]})

您可以通过以下方式找到匹配值:

df["matches"] = [set(df.loc[r, "Col1"]) & set(df.loc[r, "Col2"]) for r in range(len(df))]

您可以从中计算准确率和召回率。

但请注意,您的示例没有考虑预期输出和实际输出列表中元素的顺序,如果这很重要,并且如果"Expected Output" 列表。