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

使用StringIO读取数据后Pandas merge操作失效问题求助

问题原因

匹配失败主要有两个常见原因:

  • 贴出的代码存在语法错误:pd.read_csv(str_data, sep =";" 行末尾缺少右括号),如果实际运行时未修正该错误,会导致df未被正确定义,后续合并操作自然异常。
  • 排除语法错误后,最可能的原因是两个DataFrame的col1列存在不可见的格式差异:比如df的col1值前后存在空格、换行符,或者两列的数据类型不一致。

解决方案

1. 修正代码语法错误

补全read_csv方法的右括号,基础修正代码如下:

import pandas as pd
from io import StringIO

str_data = StringIO("""col1;col2
one;apple
two;lemon""")

df = pd.read_csv(str_data, sep =";")

df2 = pd.DataFrame([['one', 10], ['two', 15]], columns = ['col1', 'col3'])

2. 清洗关联列后执行合并

在合并前对col1列做标准化处理,去除前后空白字符、统一为字符串类型,再执行合并操作:

# 标准化关联列格式
df['col1'] = df['col1'].astype(str).str.strip()
df2['col1'] = df2['col1'].astype(str).str.strip()

# 执行左合并
df = df.merge(df2, how='left', on='col1')

最终输出结果

处理后df可以正常匹配到col3的数值,输出如下:

col1col2col3
oneapple10
twolemon15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:39:03