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

如何让Pandas读取Excel后的DataFrame中FX Rate列保留两位小数?

解决FX Rate列显示两位小数的问题

问题原因分析

你之前指定dtype={'FX Rate':str}导致列值全变成"1",大概率是因为Excel中该列的单元格数据类型不统一(部分是数值型、部分是文本型),或者数值在Excel里以整数形式存储(比如1.00显示为1),强制转字符串时出现了异常。正确的做法是先正常读取数据,再针对性处理显示格式。

具体解决方案

以下是几种实用的处理方式,按需选择:

  1. 全局设置浮点数显示格式(仅改变显示,不修改数据)
    适合希望整个DataFrame的浮点数都统一显示两位小数的场景:

    import pandas as pd
    
    # 正常读取Excel,无需指定FX Rate的dtype
    df = pd.read_excel('你的文件路径.xlsx')
    
    # 设置全局浮点数显示两位小数
    pd.set_option('display.float_format', '{:.2f}'.format)
    
  2. 仅针对FX Rate列设置显示格式(适合局部格式化)
    使用style方法,仅对目标列设置显示格式,不修改原始数据,适合报表展示场景:

    # 读取数据
    df = pd.read_excel('你的文件路径.xlsx')
    
    # 对FX Rate列设置两位小数显示
    styled_df = df.style.format({'FX Rate': '{:.2f}'})
    
    # 在终端或Jupyter中查看格式化后的结果
    print(styled_df)
    
  3. 修改数据本身为带两位小数的格式(如需存储为字符串)
    如果需要将FX Rate列的数据本身存储为带两位小数的字符串(不推荐,除非业务要求),可以先转数值型再格式化:

    df = pd.read_excel('你的文件路径.xlsx')
    
    # 确保列是数值型,保留两位小数后转字符串
    df['FX Rate'] = pd.to_numeric(df['FX Rate'], errors='coerce').round(2).astype(str)
    

    注:errors='coerce'会将无法转为数值的内容设为NaN,可根据实际情况调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:42:42