如何统计df1到df2对应列0→2、1→2的转换次数?
实现方法
方案一:直接按转换规则计数(轻量需求首选)
直接通过逐行匹配两个列的取值规则,对符合要求的行求和即可得到对应转换的次数:
# 统计0→2的转换次数 count_0to2 = ((df1['orig_label'] == 0) & (df2['predicted_label'] == 2)).sum() # 统计1→2的转换次数 count_1to2 = ((df1['orig_label'] == 1) & (df2['predicted_label'] == 2)).sum() print(count_0to2, count_1to2)
代入你提供的示例数据运行后,输出结果为1 1,和预期一致。
如果你的实际场景中两个列的名称不是示例中的orig_label和predicted_label,替换成你自己的列名col1、col2即可。
方案二:生成转换矩阵(多转换统计场景首选)
如果你后续还需要统计其他类型的状态转换次数,可以先通过交叉表生成完整的转换矩阵,之后可以直接取任意转换的计数值:
import pandas as pd # 生成转换矩阵,行是df1的取值,列是df2的取值,值为对应转换的次数 trans_matrix = pd.crosstab(df1['orig_label'], df2['predicted_label']) # 按需取对应转换的次数 count_0to2 = trans_matrix.loc[0, 2] count_1to2 = trans_matrix.loc[1, 2]
内容的提问来源于stack exchange,提问作者Adam Rainah
相关产品推荐
相关产品推荐

