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

Python中如何读取含大写E科学计数法的CSV文件?

解决Pandas读取含大写E科学计数法的空格分隔CSV为数值类型的问题

你遇到的问题其实挺常见的——Pandas默认的解析引擎可能在某些场景下对大写E的科学计数法识别不够准确,导致读成了字符串类型。下面给你几个简单有效的解决方案:

方案一:读取后批量转换为数值类型

如果已经把文件读成了字符串类型的DataFrame,直接用pd.to_numeric配合apply就能批量转换所有列:

import pandas as pd

# 先按原方式读取
df1 = pd.read_csv(filepath[0], header=None, delim_whitespace=True, lineterminator='\r')
# 转换所有列为数值类型,无法转换的会变成NaN(方便排查异常数据)
df1 = df1.apply(pd.to_numeric, errors='coerce')

转换完成后,你可以用df1.dtypes查看每列的类型,确认已经变成float64这类数值类型,就可以正常用来绘图了。

方案二:读取时指定Python引擎直接解析为数值

Pandas默认用C引擎读取文件,速度快但对某些特殊格式的兼容性不如Python引擎。试试在读取时指定engine='python',大概率能直接识别大写E的科学计数法:

import pandas as pd

df1 = pd.read_csv(filepath[0], header=None, delim_whitespace=True, lineterminator='\r', engine='python')

这种方法一步到位,不需要后续转换,适合确认文件内容都是合法数值的场景。

额外提示

如果转换后出现NaN值,说明对应的单元格可能有非数值内容,你可以用df1[df1.isna().any(axis=1)]找出这些异常行,排查文件里的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:06:28