【发布时间】:2016-12-09 17:02:18
【问题描述】:
我有 d1 和 d2,我想按 ID 列合并两者。 但是,ID 和 ID2 并不完全匹配。相反,ID 是 ID2 的前 8 位(有时可以是前 6 位,有时也可以是一个或两个不同的数字)。
我知道我可以预处理 ID2 以仅保留前 8 位数字。但是,我无法处理所有情况。
我想知道是否有一种通过正则表达式合并以进行模糊匹配的高级方法?也就是说,如果前6位匹配,那么合并?
d1=pd.DataFrame({'ID':['00846U10','01381710'],
'count':[100,200]})
d2=pd.DataFrame({'ID2':['00846U101','013817101','02376R102'],
'value':[1,5,6]})
【问题讨论】:
-
预处理 ID 和 ID2 只保留 6 个字符,这样不行!!
-
@GauravDhama 它无法处理我的所有情况。更新了问题
-
那么,您希望将
ID和ID2都分割为包含6 位数字,如果匹配,则合并这两个数据帧?
标签: python regex pandas merge fuzzy