Python中无需替换的进程分数匹配

Python中无需替换的进程分数匹配,python,dataframe,replace,matching,Python,Dataframe,Replace,Matching,我有两个数据帧,df_治疗和df_控制。我想根据他们的倾向性得分(已计算),将df_治疗中的每个元素与其df_对照中最接近的匹配项进行匹配 问题是我发现的唯一方法是基于KNN最近邻算法,但有替换,因此df\u控制中的一个元素可能与df\u治疗中的多个元素匹配 我试图找到一种方法,根据这两个数据集的倾向性得分来匹配这两个数据集,以减少混淆偏差,但使用匹配方法而不进行替换,因为我必须将治疗组中的每个元素与其最接近的倾向性得分匹配,而对照组中的元素只能与治疗组中的一个元素匹配 我试图让算法在原始df\

我有两个数据帧,
df_治疗
df_控制
。我想根据他们的倾向性得分(已计算),将
df_治疗
中的每个元素与其
df_对照
中最接近的匹配项进行匹配

问题是我发现的唯一方法是基于KNN最近邻算法,但有替换,因此
df\u控制中的一个元素可能与
df\u治疗中的多个元素匹配

我试图找到一种方法,根据这两个数据集的倾向性得分来匹配这两个数据集,以减少混淆偏差,但使用匹配方法而不进行替换,因为我必须将治疗组中的每个元素与其最接近的倾向性得分匹配,而对照组中的元素只能与治疗组中的一个元素匹配

我试图让算法在原始
df\u对照组中的元素与治疗组中的元素匹配后删除它们(并“移动”到
df\u匹配的控制组中),但我还没有找到解决这个问题的方法

我已经检查了这两本笔记本的倾向评分是否与Python中的KNN匹配,但我们都使用替换匹配:

R包MatchIt有最近邻匹配,解决了这个问题,但我在Python中找不到类似的东西