You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Uncertainties格式数据导入Pandas DataFrame并自定义显示?

解决Pandas DataFrame中uncertainties数据的自定义格式化问题

你遇到的核心问题是Pandas默认不识别uncertainties.UFloat类型,全局格式设置或直接格式化整个DataFrame的方法都无法生效,因为这些逻辑仅针对标准数值类型。以下是两种可行的解决方法:

方法一:用apply逐个格式化元素

直接对DataFrame中的UFloat元素应用自定义格式化工具,生成字符串类型的列,就能按需求显示格式:

import pandas as pd
# 创建你的DataFrame
export = pd.DataFrame(data=dv, columns=['DV'])

# 生成格式化后的新列
export['DV_formatted'] = export['DV'].apply(lambda x: frmtr.format('{0:.3u}', x))

# 查看格式化结果
print(export['DV_formatted'])

如果不需要保留原始UFloat列,也可以直接替换原列(转为字符串类型):

export['DV'] = export['DV'].apply(lambda x: frmtr.format('{0:.3u}', x))
print(export)

方法二:全局自定义Pandas显示格式化

如果你希望所有包含UFloat的DataFrame都自动套用该格式,可以修改Pandas的格式化逻辑:

from pandas.io.formats.format import DataFrameFormatter

# 定义针对UFloat的格式化函数
def format_ufloat(val):
    if isinstance(val, uncertainties.UFloat):
        return frmtr.format('{0:.3u}', val)
    return val

# 替换默认的格式化方法
original_format = DataFrameFormatter.format
def custom_format(self, val):
    return format_ufloat(val) if isinstance(val, uncertainties.UFloat) else original_format(self, val)

DataFrameFormatter.format = custom_format

# 现在直接打印DataFrame即可自动格式化UFloat类型
print(export)

注意事项

  • 方法一将列转为字符串类型,适合展示或导出;如果后续还要进行数值计算,建议保留原UFloat列,新增格式化后的字符串列。
  • 方法二是全局生效的修改,会影响所有DataFrame中UFloat类型的显示,无需每次手动调用格式化函数。

内容的提问来源于stack exchange,提问作者vallahkriese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:55:37