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

Pandas选列触发only integer scalar arrays报错如何解决

问题根因
  • 第一步读取CSV时sep=", "设置错误:你的CSV实际分隔符是纯逗号',',分隔符参数多余的空格导致pandas无法正确识别列边界,才会把所有数据读成1列
  • 后续拆分列时列名格式错误:names= df.columns.str.split(',').tolist()得到的是嵌套列表,赋值给df.columns后会生成多层索引(MultiIndex),而非普通的字符串索引,用字符串直接取值就会触发你遇到的TypeError
最优解决方案:从读取CSV环节修正,避免后续手动拆分的冗余操作

直接调整read_csv参数即可一步读取到格式正确、类型正确的40列数据:

import pandas as pd
data = "mydata.csv"
df = pd.read_csv(
    data,
    sep=',',  # 去掉分隔符里多余的空格
    thousands=',',
    quotechar='"',  # 自动识别列名、数值外包裹的引号,无需额外处理
    dtype='float64' # 直接指定所有列类型为float64,不需要后续apply转换
)
# 此时直接取列即可正常运行
X = df['USDTRY']
现有df临时修复方案

如果你不想重新读取CSV,可以直接执行以下代码修复当前df的索引问题:

# 展平多层索引,同时去掉列名里多余的引号
df.columns = [col.strip('"') for col in df.columns.get_level_values(0)]
# 再取列即可正常运行
X = df['USDTRY']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:00:03