如何让Pandas DataFrame显示原始长数值而非四舍五入后的值
解决Pandas显示原始未四舍五入数值的方法
Pandas默认会对浮点数进行格式化显示(四舍五入),但原始数据并未丢失,你可以通过以下几种方式查看完整的原始数值:
1. 全局设置显示精度
通过修改Pandas的全局显示选项,让所有浮点数显示足够多的小数位:
import pandas as pd # 方法1:自定义浮点数显示格式,保留15位小数 pd.set_option('display.float_format', lambda x: '{:.15f}'.format(x)) # 方法2:设置全局显示精度为15位 # pd.set_option('display.precision', 15) data = [[1706121660, 1.152229705572702e-06, 1.074741466619169e-06, 1.074741466619169e-06, 1.074741466619169e-06, 0.28], [1706121600, 1.125333298543622e-06, 1.157527924446797e-06, 1.088866832550798e-06, 1.152229705572702e-06, 4.681397952]] df = pd.DataFrame(data) print(df)
2. 针对特定列设置显示格式
如果不想修改全局设置,可以单独指定列的显示格式,避免影响其他数据:
import pandas as pd data = [[1706121660, 1.152229705572702e-06, 1.074741466619169e-06, 1.074741466619169e-06, 1.074741466619169e-06, 0.28], [1706121600, 1.125333298543622e-06, 1.157527924446797e-06, 1.088866832550798e-06, 1.152229705572702e-06, 4.681397952]] df = pd.DataFrame(data) # 在Jupyter环境中使用样式显示 styled_df = df.style.format({ 1: '{:.15f}', 2: '{:.15f}', 3: '{:.15f}', 4: '{:.15f}', 5: '{:.9f}' # 第5列保留9位小数显示原始值 }) display(styled_df) # 普通环境下打印完整格式 print(df.to_string(formatters={ 1: lambda x: '{:.15f}'.format(x), 2: lambda x: '{:.15f}'.format(x), 3: lambda x: '{:.15f}'.format(x), 4: lambda x: '{:.15f}'.format(x), 5: lambda x: '{:.9f}'.format(x) }))
3. 直接查看单个单元格的原始值
如果只需要查看某个特定单元格的原始数值,直接通过索引访问即可:
import pandas as pd data = [[1706121660, 1.152229705572702e-06, 1.074741466619169e-06, 1.074741466619169e-06, 1.074741466619169e-06, 0.28], [1706121600, 1.125333298543622e-06, 1.157527924446797e-06, 1.088866832550798e-06, 1.152229705572702e-06, 4.681397952]] df = pd.DataFrame(data) # 查看第0行第1列的原始值 print(df.iloc[0, 1]) # 查看第1行第5列的原始值 print(df.iloc[1, 5])
内容的提问来源于stack exchange,提问作者Jahspear
相关产品推荐
相关产品推荐

