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

如何解决Python中的TypeError:期望str实例却找到int

问题解决:合并列时TypeError(int类型无法参与字符串join)

报错原因

报错TypeError: sequence item 1: expected str instance, int found的核心是:你要合并的['A', 'Room', 'C']列中,部分CSV文件包含整数类型的数据,而str.join()方法只能拼接字符串序列,无法直接处理整数。能正常运行的那个CSV恰好这三列全是字符串类型,所以没触发错误。

修复方案

有两种直接的修复方式,任选其一即可:

方式1:提前将目标列转为字符串类型

在合并列之前,先把['A', 'Room', 'C']统一转成字符串类型,确保所有数据都能被join处理:

# 合并列与值
merge_columns = ['A', 'Room', 'C']
merged_col = ''.join(merge_columns).replace('ARoomC', 'F')

# 新增:将需要合并的列转换为字符串类型
new[merge_columns] = new[merge_columns].astype(str)

new[merged_col] = new[merge_columns].apply(lambda x: '.'.join(x), axis=1)
new.drop(merge_columns, axis=1, inplace=True)
new = new.groupby(merged_col).count().reset_index()
new.to_csv(p, index=False)

方式2:在lambda中逐个转换元素类型

如果不想修改原列的类型,可以在join时临时把每个元素转为字符串:

new[merged_col] = new[merge_columns].apply(lambda x: '.'.join(str(item) for item in x), axis=1)

额外优化建议

你的代码中先执行了一次new.to_csv(p, index=False),之后又修改数据再次保存,这会导致重复写入文件,完全可以去掉第一次保存,只保留最后一次的new.to_csv(p, index=False),提升效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:40:49