如何编写问题并将答案存储在 df 中以验证 python 中的公司名称匹配?

How can I write questions and store the answers in the df to validate the company name matches in python?

我正在完成将公司名称从一个不干净的数据集 (df_third) 匹配到干净的数据集 (df_gold) 的过程。对于一长串超过 200k 的公司,我在 df_third 中找到了最接近的匹配项,即

df_third
Name_Raw         Group1   
 Aecom Tech      AECOM
 Aecom-Amentum   AECOM       
 Aecom Govern    Govern

我想问用户“确认 ['Name_Raw'] 是否应该分组到 ['Group1'] Y/N?

如果他们输入“Y”标记到新的[验证]列

如果他们输入“N”标记到新的[验证]列

然后询问下一行。

我考虑过使用 Name_Raw 作为索引(因为它们是唯一的)但找不到循环问题和捕获答案的方法。

此外,欢迎提出任何更好的处理方法。

这段代码应该会得到你想要的结果:

import pandas as pd

dd = { 
'Name_Raw': ['Aecom Tech','Aecom-Amentum','Aecom Govern'],
'Group1':['AECOM','AECOM','Govern']
}

df = pd.DataFrame(dd)
df['Validate'] = ""


for idx,row in df.iterrows():
    YN = "-"
    while ((YN and YN.upper() in "YN") == False): 
       YN = input (f"Confirm if ['{row['Name_Raw']}'] should be grouped to ['{row['Group1']}'] Y/N ")
    row['Validate'] = YN.upper()
    
print("\n", df.to_string(index=False))

输出

Confirm if ['Aecom Tech'] should be grouped to ['AECOM'] Y/N Y
Confirm if ['Aecom-Amentum'] should be grouped to ['AECOM'] Y/N N
Confirm if ['Aecom Govern'] should be grouped to ['Govern'] Y/N Y

       Name_Raw  Group1 Validate
    Aecom Tech   AECOM        Y
 Aecom-Amentum   AECOM        N
  Aecom Govern  Govern        Y