gpt4 book ai didi

python - Pandas:如何在 2 个不同的数据帧上迭代 for 循环?

转载 作者:行者123 更新时间:2023-12-01 02:31:51 26 4
gpt4 key购买 nike

我正在尝试计算 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。理想情况下它看起来像这样:

最终_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

感谢您的帮助!

最佳答案

你可以这样解决你的问题:

创建一个空的数据框:

final = pandas.DataFrame({'id': [], 'name': [], 'name_2': [], 'score': []})

迭代两个 DataFrame,插入 id、名称和分数并将其连接到最终的 DataFrame:

for id, name in zip(df1['id'], df1['name']):
for name2 in df2['name_2']:
tmp = pandas.DateFrame({'id': id, 'name': name, 'name_2': name2, 'score': fuzz.ratio(name, name2)})
final = pandas.concat([final, tmp], ignore_index=True)

print(final)

可能有一种更干净、更有效的方法来做到这一点,但我希望这会有所帮助。

关于python - Pandas:如何在 2 个不同的数据帧上迭代 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46737526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com