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

如何将DataFrame中科学计数法值转为小数(Jupyter Notebook场景)

解决DataFrame特定列科学计数法转小数显示的问题

首先要明确:你遇到的大概率是显示格式问题,而非数值本身没转换。pandas默认会对较大/较小的数用科学计数法显示,但数值本身还是正常的浮点数。以下是几种针对性的解决方法:

方法1:全局设置pandas显示格式(所有列生效)

直接修改pandas的显示配置,强制所有浮点数以小数形式展示:

import pandas as pd
pd.set_option('display.float_format', lambda x: '%.6f' % x)

这里的%.6f可自定义小数位数,比如%.2f就是保留两位小数。

方法2:仅针对特定列设置显示格式

如果不想全局修改,只处理目标列,可使用apply结合字符串格式化:

# 假设目标列名为'target_col'
df['target_col'] = df['target_col'].apply(lambda x: '%.6f' % x)

注意:这种操作会把列类型转为字符串,若后续需做数值计算,建议用style方法仅修改显示格式,不改变原始数据类型:

df.style.format({'target_col': '{:.6f}'})

方法3:处理字符串类型的科学计数法

如果你的列是字符串格式的科学计数法(比如'1.23e-05'),需先转为数值类型再设置显示:

# 先将字符串转为数值
df['target_col'] = pd.to_numeric(df['target_col'])
# 再设置显示格式
pd.set_option('display.float_format', lambda x: '%.6f' % x)

验证转换效果

用df['target_col'].dtype查看列的类型,用df['target_col'].iloc[0]查看单个数值的实际值,确认数值本身已转为正常浮点数,仅需调整显示格式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:00:54