【发布时间】:2017-05-17 10:29:56
【问题描述】:
我正在使用 difflib 的 get_closest_matches 为输入向量中的每个值返回 N=3 个最佳匹配项。我想将输出存储在数据框中的单个列中,例如:
input output
"xyz" "xyz"
"xyz" "xzy"
"xyz" "xxy"
"pqr" "pqr"
...
我应该从应用调用返回什么,它会自动将输入扩展/广播到 N 个输出?例如,这会将输出作为列表返回:
data["output"] = data["input"].apply(lambda x: difflib.get_close_matches(x, possibilities))
在这种形式中,需要多次迭代调用 concat 才能解压缩每一行中的列表。一定有一个更直接的方法,我错过了。
有类似的问题,例如这个Returning multiple values from pandas apply on a DataFrame,但是它们都将输出扩展为单独的列,而我需要它在一个列中。
编辑:正如 IanS 正确指出的那样,possiblities 在这种情况下是
possibilities = ['xyz', 'xzy', 'xxy', 'pqr']
【问题讨论】: