我想分别找到所有功能的欺诈率,然后用功能值替换这个值。例如,我的样本数据在下面,然后我想找到我的模型的欺诈率,如 STEP1,然后我想用模型的值替换,如 STEP2。
我的代码在下面找到这个值,但它不起作用。错误代码也在下面。有人可以帮助我吗?
for i in df2_a.columns:
grp1 = df2.groupby(i, as_index=False, sort=True, group_keys=True)[['EXT_REFERENCE']].count()
df3 = df2[df2.FRAUD == 0]
grp2 = df3.groupby(i, as_index=False, sort=True, group_keys=True)[['EXT_REFERENCE']].count()
df4 = df2[df2.FRAUD == 1]
grp3 = df4.groupby(i, as_index=False, sort=True, group_keys=True)[['EXT_REFERENCE']].count()
grp4 = grp1.merge(grp2, how = 'left', on=i )
grp5 = grp4.merge(grp3, how = 'left', on=i )
grp6 = grp5.fillna(0)
grp6[i+'_New'] = grp5.EXT_REFERENCE / grp5.EXT_REFERENCE_x
grp7 = grp6.fillna(0)
grp8 = grp7.drop(['EXT_REFERENCE','EXT_REFERENCE_x','EXT_REFERENCE_y'],axis=1)
df5 = pd.merge(df2_a, grp8, on=i, how='left')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-39-225543878353> in <module>
6 grp3 = df4.groupby(i, as_index=False, sort=True, group_keys=True)[['EXT_REFERENCE']].count()
7 grp4 = grp1.merge(grp2, how = 'left', on=i )
----> 8 grp5 = grp4.merge(grp3, how = 'left', on=i )
9 grp6 = grp5.fillna(0)
10 grp6[i+'_New'] = grp5.EXT_REFERENCE / grp5.EXT_REFERENCE_x
/opt/anaconda/envs/env_python/lib/python3.6/site-packages/pandas/core/frame.py in merge(self, right,
how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)
6866 right_on=right_on, left_index=left_index,
6867 right_index=right_index, sort=sort, suffixes=suffixes,
-> 6868 copy=copy, indicator=indicator, validate=validate)
6869
6870 def round(self, decimals=0, *args, **kwargs):
慕妹3146593
PIPIONE
相关分类