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

Pandas调用resample.interpolate后无法格式化保留两位小数怎么办

Pandas重采样后数据保留两位小数不生效解决

问题原因

核心问题是你没有接收map()方法的返回值:Pandas中绝大多数Series、DataFrame的操作默认都不会原地修改原数据,map('{:.2f}'.format)执行后会生成一个格式化完成的新Series,你没有把这个新Series赋值回原DataFrame的对应列,原数据自然不会有变化。
另外需要提前注意:如果格式化后还需要做数值计算,不要把数值转成字符串,直接做数值层面的四舍五入即可。

可用方案

  • 方案1:保留数值类型(推荐,适配后续计算需求)
    使用round()方法直接对数值做两位小数保留,支持单列或全表操作:
# 针对单列做处理,赋值回原列
ecoData["1/31/2019"] = ecoData["1/31/2019"].round(2)

# 如果要一次性对所有列统一保留两位小数,直接操作整个DataFrame即可
ecoData = ecoData.round(2)

ecoData.head()
  • 方案2:转固定两位小数的字符串格式
    如果需要强制固定显示两位小数(例如数值1.3需要显示为1.30的格式化场景),将map方法的返回结果赋值回原列即可:
ecoData["1/31/2019"] = ecoData["1/31/2019"].map('{:.2f}'.format)
ecoData.head()

提示:该方案会把列数据类型转为字符串,后续无法直接做数值运算,无特殊格式化需求优先选方案1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:39:18