【问题标题】:Find closest match in another column在另一列中查找最接近的匹配项
【发布时间】:2021-02-08 13:27:33
【问题描述】:

有没有办法找到最接近字符串的匹配项? df 有 2 个独立的列。 user_input 是一个包含 1000 个非空行的列。由于只有 20 个 possible_fruits,因此 possible_fruits 有 980 个空行。

df
    user_input    possible_fruits
     aapl            apple
     applee          pear
     aaaple          banana
...

预期输出

user_input  closest_match_in_possible_fruits
aapl            apple      
applee          apple      
aaaple          apple      

【问题讨论】:

标签: python python-3.x pandas dataframe fuzzywuzzy


【解决方案1】:

尝试使用http://docs.python.org/library/difflib.html#difflib.get_close_matches

difflib.get_close_matches(user_input1, possible_fruits)

对于列做

for i in df:
   answer = difflib.get_close_matches(df['user_input'][i], df['possible_fruits'])
   print (answer)

编辑:

user_input = df['user_input']
possible_fruits = df['possible_fruits']

for i in user_input:
    answer = difflib.get_close_matches(user_input[i], possible_fruits)
    print(answer)


【讨论】:

  • 当我执行 difflib.get_close_matches(df['user_input'], df['possible_fruits']) 时,我得到 [ ] 作为输出
  • 你需要使用for循环来循环列表
  • 但是 df 有 2 列。我应该将每一列转换成一个列表吗?
  • KeyError: 'user_input''
  • 我又改了,把 df['possible_fruits'][i] 改成 df['possible_fruits']
猜你喜欢
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多