数据a是否在数据b里面,一开始写了个for循环去匹配,可数据量大,慢到爆炸。
而且某个人也说,用for循环处理大数据,是要被人打的。
python处理该问题,目前为止有两种方法。
- 使用set集合的intersection交集
a = [1,2,3,4] b = [4,5,6,7] set(a).intersection(set(b))
- 使用pandas 的merge函数,可以取dataframe的交集。作用和sql的left join,right join差不多。
pd.merge(a,b,on='id')
pd.merge另有妙用。比如查找两组电话号码,其前七位是否相同,也就是两组数据的部分匹配。
先新建一列,为部分匹配的数据,如移动电话的前七位。再利用pd.merge关联这两组数据,关联主键即为移动电话的前七位。
pd.merge(电话表1,电话表2,on='移动电话前七位')



