如何将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
相关产品推荐
相关产品推荐

