Pandas DataFrame应用style后数值变为科学计数法如何解决?
解决方案
方法1:仅针对当前Styler对象设置(推荐)
直接在调用style时指定对应列的格式化规则,不会影响其他DataFrame的显示效果,可适配保留两位小数+千分位分隔的原始需求:
import pandas as pd d = {'Name': ['A', 'B'], 'Amount': [3580093709.00, 5656745317.00]} df = pd.DataFrame(data=d) # 给Amount列指定显示格式,:,.2f代表千分位分隔、保留2位小数 df = df.style.format({'Amount': '{:,.2f}'}) df
如果不需要千分位分隔仅需要普通定点数显示,把格式字符串替换为{:.2f}即可。
方法2:全局设置pandas浮点数显示规则
如果需要所有pandas浮点型数据输出都不使用科学计数法,可以修改全局配置:
import pandas as pd # 全局设置浮点数显示为千分位分隔、保留2位小数 pd.set_option('display.float_format', '{:,.2f}'.format) d = {'Name': ['A', 'B'], 'Amount': [3580093709.00, 5656745317.00]} df = pd.DataFrame(data=d) df = df.style df
注意:该配置修改后会影响所有后续pandas浮点型数据的打印、Styler渲染效果,如果仅单个表格需要特殊格式建议优先使用方法1。
原因说明
pandas默认会对长度较大的浮点型数值自动采用科学计数法渲染,避免表格列宽过宽,手动指定格式化规则后就会覆盖默认的自动适配逻辑。
内容的提问来源于stack exchange,提问作者Block65
相关产品推荐
相关产品推荐

