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

pandas使用pd.concat报TypeError 如何生成ID/subject/words三列CSV

问题解决方法

核心问题原因

  • 循环逻辑错误:未按行组装三个字段,而是将三个字段依次追加到一维列表,导致最终数据是长列结构
  • pd.concat用法错误:该方法仅支持拼接Series、DataFrame类型对象,你传入的是存储字符串、列表的普通Python列表,因此触发类型报错

修改后完整代码

import json
import pandas as pd

class Payload(object):
     def __init__(self, result):
        self.__dict__ = json.loads(result)

data = []
for row in res:
    result = ''.join(row[0])
    p = Payload(result)
    # 按行组装单条记录,三个字段为一组
    row_item = {
        "ID": p.ID,
        "subject": p.subject,
        # 如果需要words存为字符串而非列表,可改为 ','.join(p.words.split("|")) 自定义分隔符
        "words": p.words.split("|")
    }
    data.append(row_item)
    print(p.ID, p.subject, row_item["words"])

# 直接用组装好的列表生成DataFrame,不需要pd.concat
df = pd.DataFrame(data)
# 标准CSV用逗号分隔,sep设为',',如需制表符可保留原'\t'设置
df.to_csv('test.csv', sep=',', encoding='utf-8', index=False)

关键修改说明

  1. 循环内每次生成包含三个字段的字典作为单条行记录,再追加到列表中,保证列表每个元素对应CSV一行
  2. 删除错误的pd.concat调用,直接用结构化的列表生成DataFrame
  3. 可根据需求调整words字段的存储格式、CSV分隔符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:09:02