使用NumPy加载分号分隔CSV文件出现字段不匹配报错咨询
问题原因与解决方法
第一次报错原因
numpy的genfromtxt函数默认将#作为注释标识符,你给出的第一条CSV记录标题中包含#字符,函数读取到#时会直接截断当前行的后续内容,因此触发“仅得到3列而非13列”的报错。你通过新增comments='%'参数将注释标识符修改为%,解决了带#行的加载问题,但引入了新的兼容问题。
第二次加载失败原因
你最新给出的加载失败记录的标题中包含99%字样,现在你将%设为注释标识符,函数读取到%时同样会截断后续内容,导致列数不足加载失败。
最终解决方案
你的CSV文件本身没有专门的注释行,直接关闭注释解析功能即可。如果需要保留数值、日期等字段的原有类型,也可以同步把dtype=str改回dtype=None,搭配encoding='utf-8'避免特殊字符编码报错:
data = np.genfromtxt(datas_path, delimiter=';', dtype=None, encoding='utf-8', comments=None, names=True,\ deletechars="~!@#$%^&*()-=+~\|]}[{';: /?.>,<.", case_sensitive=True)
内容的提问来源于stack exchange,提问作者joesan
相关产品推荐
相关产品推荐

