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

合并多CSV文件用于预测时触发TypeError,求排查解决

问题分析与解决方案

核心问题

  • pd.merge()的参数限制:pandas.merge()仅支持合并两个DataFrame(对应left和right参数),你一次性传入多个DataFrame(d1、d2、d3、d4、d5、d6),导致参数解析混乱,触发TypeError。
  • 未定义变量d5:代码中引用了d5,但没有读取对应的CSV文件,属于无效引用。

正确的合并方式

方式1:链式逐步合并

依次两两合并DataFrame,逻辑清晰易调试:

import pandas as pd

# 读取所有存在的CSV文件(移除未定义的d5,或补充对应读取代码)
d1 = pd.read_csv('/content/drive/My Drive/mimic_ed/addmition.csv')
d2 = pd.read_csv('/content/drive/My Drive/mimic_ed/diagnosis.csv')
d3 = pd.read_csv('/content/drive/My Drive/mimic_ed/icu.csv')
d4 = pd.read_csv('/content/drive/My Drive/mimic_ed/med.csv')
d6 = pd.read_csv('/content/drive/My Drive/mimic_ed/vitalsign.csv')

# 链式合并每个DataFrame
merged_df = d1.merge(d2, on='patient_id', how='outer')
merged_df = merged_df.merge(d3, on='patient_id', how='outer')
merged_df = merged_df.merge(d4, on='patient_id', how='outer')
merged_df = merged_df.merge(d6, on='patient_id', how='outer')

print(merged_df)

方式2:用functools.reduce批量合并

适合合并大量DataFrame的场景,代码更简洁:

import pandas as pd
from functools import reduce

# 将所有需要合并的DataFrame存入列表
dfs = [
    pd.read_csv('/content/drive/My Drive/mimic_ed/addmition.csv'),
    pd.read_csv('/content/drive/My Drive/mimic_ed/diagnosis.csv'),
    pd.read_csv('/content/drive/My Drive/mimic_ed/icu.csv'),
    pd.read_csv('/content/drive/My Drive/mimic_ed/med.csv'),
    pd.read_csv('/content/drive/My Drive/mimic_ed/vitalsign.csv')
]

# 批量合并所有DataFrame
merged_df = reduce(lambda left, right: pd.merge(left, right, on='patient_id', how='outer'), dfs)

print(merged_df)

额外注意事项

  • 确认所有CSV文件中都存在patient_id列,否则会触发KeyError。
  • 如果d5是遗漏的文件,补充对应的pd.read_csv代码;如果是笔误,直接从合并列表中删除即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:05:48