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

从字典列表生成的Pandas DataFrame无法选取列问题求助

解决Pandas DataFrame无法选取列的问题

核心原因

你遇到的问题大概率是DataFrame的列名包含隐藏不可见字符(比如前后空格、换行符、制表符),或者列名实际与你输入的字符串存在细微差异——print(list(df))只能显示表面字符,无法暴露这些隐藏内容。

排查与解决步骤

  1. 暴露列名真实结构
    用repr()打印列名的原始字符串,直接看到隐藏字符:

    for col in df.columns:
        print(repr(col))
    

    比如输出如果是'col1 '(末尾带空格),就说明问题所在。

  2. 清理列名
    直接去除列名前后的空白字符,同时替换内部的连续空白:

    # 去除列名前后的空格、换行、制表符等
    df.columns = df.columns.str.strip()
    # 把列名中的连续空白(比如多个空格)替换成单个空格(可选)
    df.columns = df.columns.str.replace(r'\s+', ' ', regex=True)
    

    清理后再尝试df[['col1']],应该就能正常选取列。

  3. 强制指定列名(可选)
    如果已经明确知道正确的列名,也可以直接替换:

    df.columns = ['col1', 'col2', 'col3']  # 替换为你实际需要的列名
    

额外验证点

确认orient参数是否匹配JSON结构:

  • 如果get_request.json()[par]是字典列表(每个字典对应一行数据),应该用pd.DataFrame(get_request.json()[par])或pd.DataFrame.from_dict(get_request.json()[par], orient="records"),而非orient="columns"——错误的orient参数可能导致列名解析异常,虽然创建DataFrame时无报错,但后续操作会出问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:07:03