Python机器学习:预测值以科学计数法显示的格式调整问询
解决Pandas中科学计数法显示为整数/普通浮点数的问题
当你运行以下代码后,DataFrame中的预测值和差值以科学计数法显示,而非预期的整数或普通浮点数:
pred_y_df=pd.DataFrame({'Actual Value':y_test,'Predicted value':y_pred,'Difference':y_test-y_pred}) pred_y_df[0:20]
输出示例:
Actual Value Predicted value Difference 136 5740000 6.291149e+06 -5.511488e+05 80 6629000 5.684170e+06 9.448304e+05 47 7490000 7.709115e+06 -2.191149e+05 526 2310000 2.587718e+06 -2.777181e+05 200 4900000 4.867998e+06 3.200241e+04 527 2275000 2.417865e+06 -1.428652e+05 278 4277000 5.021664e+06 -7.446643e+05 402 3500000 3.228685e+06 2.713153e+05
可以通过以下几种方法调整显示格式:
方法1:全局设置Pandas显示格式
该设置会影响所有后续的DataFrame输出,彻底关闭科学计数法:
import pandas as pd # 显示为整数(无小数) pd.set_option('display.float_format', lambda x: '%.0f' % x) # 若需保留小数,比如两位小数的普通浮点数 # pd.set_option('display.float_format', lambda x: '%.2f' % x)
方法2:仅针对当前DataFrame设置显示格式
临时调整目标列的显示样式,不改变全局设置:
# 转换为整数显示 pred_y_df.style.format({ 'Predicted value': '{:.0f}'.format, 'Difference': '{:.0f}'.format }) # 或者保留两位小数的普通浮点数 # pred_y_df.style.format({ # 'Predicted value': '{:.2f}'.format, # 'Difference': '{:.2f}'.format # })
方法3:转换列的数据类型(适用于无小数需求的场景)
如果预测值和差值可以转换为整数(无精度损失),直接修改列的数据类型:
pred_y_df['Predicted value'] = pred_y_df['Predicted value'].astype(int) pred_y_df['Difference'] = pred_y_df['Difference'].astype(int)
注意:若数据存在小数部分,使用astype(int)会直接截断小数,需谨慎使用。
内容的提问来源于stack exchange,提问作者Sparsh Maheshwari
相关产品推荐
相关产品推荐

