使用pandas做数据集diff分析
应用场景:
使用pandas工具对比不同模型的结果数据,查看diff
具体使用说明:
首先加载两份数据,使用read_csv加载,并使用drop_duplicates去重
df1 = pd.read_csv(sys.argv[1]) df2 = pd.read_csv(sys.argv[2]) df1.drop_duplicates(subset=['id'], inplace=True) df2.drop_duplicates(subset=['id'], inplace=True)
使用apply函数对dataframe中的内容进行处理,在这里,需要对每一列计算一个最佳分值,作为模型的最佳分值。
df1['score'] = df1.apply(score_get, axis=1)
df2['score'] = df1.apply(score_get, axis=1)
df1n = df1[df1['score']>thre_num]
df2n = df2[df2['score']>thre_num]
对两个模型的结果通过唯一的id做merge,在一个矩阵里面存储两个模型的得分:
df_merge= pd.merge(df1n , df2n, how= 'left' , on=['id']) df_merge.to_csv('merge_end', sep="\t")
对新的矩阵df_merge的两列score_x,score_y做减法,看效果:
df_merge['var'] = df_merge.apply(lambda x:(abs(x['score_x'] - x['score_y'])), axis=1)
df_mn = df_merge
df_mn = df_mn.sort_values(by=['var'],ascending=False)