如何去除DataFrame中的科学计数法?设置显示格式无效
解决DataFrame科学计数法去除无效的问题
你设置的pd.options.display.float_format只对浮点数类型的列生效,而通过groupby.agg求和得到的Total_Suicides列大概率是整数类型,所以全局格式设置不会起作用。以下是几种实用的解决办法:
- 先确认列的数据类型:执行
print(AgeBreakdown.dtypes),如果Total_Suicides显示为int64或类似整数类型,对应以下方法处理。
方法1:转换列类型后用全局设置
将整数列转为浮点数,再应用全局格式:
# 转换列类型为浮点数 AgeBreakdown['Total_Suicides'] = AgeBreakdown['Total_Suicides'].astype(float) # 设置全局浮点数显示格式 pd.options.display.float_format = '{:, .2f}'.format # 查看格式化后的结果 print(AgeBreakdown)
方法2:用style方法直接格式化(推荐)
无需修改原数据类型,直接针对目标列设置显示格式,整数、浮点数都能适配:
# 保留两位小数+千分位分隔 display(AgeBreakdown.style.format({'Total_Suicides': '{:, .2f}'})) # 如果不需要小数(自杀人数为整数,更贴合实际),可以用这个格式 display(AgeBreakdown.style.format({'Total_Suicides': '{:,}'}))
方法3:聚合阶段直接格式化(仅适合展示)
这种方式会将结果转为字符串类型,不适合后续数据计算,仅用于一次性展示场景:
AgeBreakdown = Variables_of_Interest2.groupby('age').agg( Total_Suicides = ('suicides_no', lambda x: '{:, .2f}'.format(x.sum())) )
内容的提问来源于stack exchange,提问作者DavidJohnZ
相关产品推荐
相关产品推荐

