Python中如何设置Pandas DataFrame数字格式取消科学计数法并为指定列加$符号
解决方法
你可以通过Pandas的显示格式配置和样式设置实现需求,分为两种场景可选:
场景1:仅临时展示时修改格式,不改变原数据类型(推荐)
使用DataFrame的style属性针对指定列设置展示规则,不会影响后续数值计算:
import pandas as pd import numpy as np numbers = np.array([123242737.4923,679754672.3849]) numbers2 = np.array([123523,467895]) dict_val = pd.DataFrame({'Numbers':numbers.round(2),'Numbers 2': numbers2}) # 自定义格式输出 display(dict_val.style.format({ 'Numbers': '{:.2f}', # 保留两位小数,禁用科学计数法 'Numbers 2': '${:.0f}' # 整数前加$符号 }))
场景2:全局关闭科学计数法,所有DataFrame都生效
如果希望后续所有Pandas输出都不使用科学计数法,可以先配置全局参数:
# 全局设置浮点数显示格式,保留两位小数,禁用科学计数法 pd.set_option('display.float_format', lambda x: '%.2f' % x) # 单独处理Numbers 2列的$符号,修改后该列转为字符串类型 dict_val['Numbers 2'] = dict_val['Numbers 2'].apply(lambda x: f'${x}') display(dict_val)
注意:第二种场景下修改
Numbers 2列后,该列会变为字符串类型,无法直接参与数值计算,仅适合纯展示场景使用。
内容的提问来源于stack exchange,提问作者georgehere
相关产品推荐
相关产品推荐

