You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python嵌套for循环的输出转为Pandas DataFrame?

把嵌套循环的模糊匹配结果转换成Pandas DataFrame

这里有个简单直接的方法来实现你想要的效果——先收集循环里的所有匹配数据,再用Pandas把它转换成结构化的DataFrame:

步骤思路:

  • 先创建一个空列表,用来存储每一组col1元素、col2元素和对应的模糊匹配得分
  • 在嵌套循环里,把每一组数据以字典(或元组)的形式追加到列表中
  • 最后用pd.DataFrame()把列表转换成规范的DataFrame

完整代码示例:

import pandas as pd
from fuzzywuzzy import fuzz

# 构造你提供的原始DataFrame
data = {
    'col1': ['Country', 'State', 'City', 'park', 'site'],
    'col2': ['County', 'stats', 'PARK', 'parking', 'Cite']
}
df = pd.DataFrame(data)

# 初始化空列表存储匹配结果
match_results = []

# 嵌套循环收集数据
for i in df.col1:
    for j in df.col2:
        similarity_score = fuzz.token_set_ratio(i, j)
        # 用字典存储每组数据,后续生成DataFrame时会自动对应列名
        match_results.append({
            'col1_value': i,
            'col2_value': j,
            'similarity_score': similarity_score
        })

# 转换成目标DataFrame
result_df = pd.DataFrame(match_results)

# 查看最终结果
print(result_df)

输出示例:

运行后会得到这样的结构化结果:

col1_value col2_value  similarity_score
0     Country      County                83
1     Country       stats                22
2     Country        PARK                20
3     Country     parking                29
4     Country        Cite                25
5       State      County                44
...(剩余行省略)

如果你觉得字典写法有点繁琐,也可以用元组存储数据(比如(i, j, similarity_score)),然后在创建DataFrame时手动指定列名:pd.DataFrame(match_results, columns=['col1_value', 'col2_value', 'similarity_score']),效果完全一致。

内容的提问来源于stack exchange,提问作者kalyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:03:09