问题背景:
最近需要把数据库A和数据库B的data进行merge,苦于每个数据库permnent的identifier不一样(记为a和b好了),需要建立一个link table。link table中,a和b应该是一一对应关系,但是经过统计发现出现了重复行!试了很久才发现如何定位到重复行,分享給需要的童鞋。
原始iclink表形式如结果1所示,我需要ticker和permno保持一一对应关系,但是统计显示我有4个重复行。
iclink.head()
结果1:
ticker permno cname comnam name_similarity score
0 0000 14471 TALMER BANCORP INC TALMER BANCORP INC 100 0
4 000V 14423 EIGER BIOPHARMACEUTICALS INC EIGER BIOPHARMACEUTICALS INC 100 0
6 000Z 14449 BIOCEPT INC BIOCEPT INC 100 0
8 0017 14448 AUSPEX PHARMACEUTICALS INC AUSPEX PHARMACEUTICALS INC 100 0
9 0018 14455 EGALET CORP EGALET CORP
解决方案:
只需要短短一行代码,就可以直接找出重复的行啦
从结果2可以看出,对于permno为CALV、KFS2、PD2、TOCC的sample都各有两条重复记录
~~~~~~~~~~~~~~~~~~~~?(开心,可以睡觉了。。)
iclink[iclink['ticker'].duplicated(keep=False)]
结果2:
ticker permno cname comnam name_similarity score
18045 CALV 16849 CALEDONIA MINING CORP CALEDONIA MINING CORP PLC 100 0
18046 CALV 77563 CALEDONIA MINING CORP CALEDONIA MINING CORP 100 0
18133 KFS2 89063 KINGSWAY FINANCIAL KINGSWAY FINANCIAL SERVICES INC 100 0
18134 KFS2 89063 KINGSWAY FINANCIAL SERVICES INC KINGSWAY FINANCIAL SERVICES INC 100 0
18179 PD2 84155 PRECISION DRILLING CORP PRECISION DRILLING CORP 100 0
18180 PD2 90999 PRECISION DRILLING CORP PRECISION DRILLING CORP 100 0
18245 TOCC 89444 THOMSON REUTERS CORP THOMSON REUTERS CORP 100 0
18246 TOCC 89444 THOMSON CORP THOMSON REUTERS CORP 100 0