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

Pandas循环逐次打印单行结果,如何合并为列对齐的规整表格

问题根因

循环内每完成一次匹配就生成单行DataFrame直接打印的操作,会触发Pandas独立的逐次渲染逻辑:每轮重复输出表头、基于当前单行内容临时计算列宽、插入冗余分隔线,最终造成输出零散、列宽错位、格式混乱。

修正落地方案

整体逻辑核心为把“边匹配边打印”改成“全量匹配完统一渲染打印”,配合固定打印参数避免列宽错位,具体步骤:

  1. 放弃循环内的临时DataFrame打印逻辑,初始化一个空列表,每轮循环拿到匹配结果后直接存入列表,不做任何打印操作。
  2. 等所有目标名称遍历完成后,一次性把列表转换为完整的DataFrame,执行单次打印。
  3. 提前配置Pandas打印规则,解决中文字符列宽计算偏差导致的对齐问题。

常见问题代码示例

from rapidfuzz import process
import pandas as pd

# 待匹配的参考名称库
reference_names = ["北京朝阳实业有限公司", "北京海淀数字科技公司", "上海浦东进出口贸易商行"]
# 需要做模糊匹配的目标名称列表
target_names = ["北京朝阳实业公可", "上海浦东贸易行", "北京海淀科技"]

for target in target_names:
    match = process.extractOne(target, choices=reference_names, score_cutoff=50)
    # 问题核心:每轮循环生成单行df直接打印
    temp_df = pd.DataFrame([{
        "目标名称": target,
        "Matching": match[0],
        "Score": match[1]
    }])
    print(temp_df)

修正后可直接运行的代码

from rapidfuzz import process
import pandas as pd

# 提前固定打印参数,解决中文列宽错位、重复渲染问题
pd.set_option("display.unicode.east_asian_width", True)  # 适配中文宽度计算,避免列位歪掉
pd.set_option("display.width", 1200)  # 固定整体表格渲染宽度
pd.set_option("display.max_colwidth", 30)  # 固定单文本列最大宽度,避免长内容挤乱排版

# 待匹配的参考名称库
reference_names = ["北京朝阳实业有限公司", "北京海淀数字科技公司", "上海浦东进出口贸易商行"]
# 需要做模糊匹配的目标名称列表
target_names = ["北京朝阳实业公可", "上海浦东贸易行", "北京海淀科技"]

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

for target in target_names:
    match = process.extractOne(target, choices=reference_names, score_cutoff=50)
    if not match:
        match = (None, 0, None)
    # 只存结果,不中途打印
    match_results.append({
        "目标名称": target,
        "Matching": match[0],
        "Score": match[1]
    })

# 全量循环结束后,一次性生成完整表格并打印
final_output = pd.DataFrame(match_results)
print(final_output)

排版保障注意事项

  • 如果不开启display.unicode.east_asian_width参数,哪怕是全量生成的DataFrame,中文场景下也会因为半角/全角字符宽度计算偏差,出现列文字对不齐的问题。
  • 循环内绝对不要插入任何临时DataFrame的打印操作,多次触发Pandas的打印渲染逻辑必然会打断连续表格的格式。
  • 对得分低于阈值的无效匹配,直接在存储结果时补默认值即可,不要单独打印无效行,避免破坏整体表格结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 10:36:03