【发布时间】:2018-03-26 00:56:30
【问题描述】:
我正在尝试计算 2 个数据帧中多行的模糊率:
df1:
id name
1 Ab Cd E
2 X.Y!Z
3 fgh I
df2:
name_2
abcde
xyz
我想计算 df1.name 和 df2.name_2 中所有值之间的模糊率:
为此,我有代码:
for i in df1['name']:
for r in df2['name_2']:
print(fuzz.ratio(i,r))
但我希望最终结果也包含来自 df1 的 ID。理想情况下应该是这样的:
final_df:
id name name_2 score
1 Ab Cd E abcde 50
1 Ab Cd E xyz 0
2 X.Y!Z abcde 0
2 X.Y!Z xyz 60
3 fgh I abcde 0
3 fgh I xyz 0
感谢您的帮助!
【问题讨论】:
-
您可以尝试这样的操作:
for i, r in zip(df1['name'], df2['name_2']): ...这仅适用于您想要的两个数据帧长度相同的情况,但应该适用于您的示例。 -
谢谢!但是我的第二个数据框只有 2 行,而第一个数据框有 3 行。
-
@L.MacKenzie 另外我还想要第一个数据帧中的 id。感谢您的帮助!
标签: python pandas for-loop fuzzywuzzy