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

Pandas混合类型DataFrame数值列保留2位小数不生效如何解决?

Pandas数值列四舍五入保留2位小数失效解决方案

失效原因排查

你之前尝试的4种方法失效主要由以下3个常见问题导致:

  • round方法默认返回新对象,你没有将运算结果赋值回原变量,原DataFrame未被修改
  • 从Excel读取的B列被识别为字符串(object)类型,数值运算不生效
  • Pandas全局浮点数显示精度设置问题,即便数值本身已保留2位,展示时仍会显示多余小数位
  • 原代码读取Excel的路径存在语法错误,未用引号包裹、未处理Windows路径转义问题

完整解决代码

import pandas as pd
import numpy as np

# 读取Excel,路径加引号和r前缀避免转义问题
df1 = pd.read_excel(r'C:\Users\Excel\Data.xlsx')

# 先将B列转换为浮点数值类型,确保后续数值运算生效
df1['B'] = pd.to_numeric(df1['B'], errors='coerce')

# 四舍五入保留2位小数,赋值回原列
df1['B'] = df1['B'].round(2)

# 可选:设置全局浮点数显示格式,确保所有浮点数展示时统一保留2位
pd.set_option('display.float_format', lambda x: '%.2f' % x)

# 输出查看结果
display(df1)

导出Excel时保留2位小数的附加方案

如果需要导出到Excel后B列仍固定显示2位小数,可使用以下代码:

writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
df1.to_excel(writer, index=False, sheet_name='Sheet1')
workbook = writer.book
worksheet = writer.sheets['Sheet1']
# 定义2位小数的单元格格式
float_format = workbook.add_format({'num_format': '0.00'})
# 应用到B列
worksheet.set_column('B:B', 10, float_format)
writer.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:57:01