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

如何对groupby处理后的DataFrame应用{:.3f}格式且保留原High列值?

解决方案:直接修改原DataFrame即可,无需新建

你完全不需要新建DataFrame,直接在已有的hg上操作就能实现需求——保持High列数值不变,把其他数值列格式化为三位小数。下面给你两种常用的实现方式:

方式一:直接修改现有列(覆盖原数据)

如果不担心覆盖原始数值,可以直接对counts和Total列做格式化处理:

# 对counts列格式化为三位小数(转为字符串格式)
hg['counts'] = hg['counts'].apply(lambda x: "{:.3f}".format(x))
# 对Total列格式化为三位小数(转为字符串格式)
hg['Total'] = hg['Total'].apply(lambda x: "{:.3f}".format(x))

如果你希望保持数值类型(而非转为字符串),可以用round()方法实现四舍五入到三位小数:

hg['counts'] = hg['counts'].round(3)
hg['Total'] = hg['Total'].round(3)

这两种方式都不会改动High列的数值,完全符合你的要求。

方式二:添加新列(保留原数据)

如果想保留原始数值列,只新增格式化后的列,可以这样做:

# 添加格式化后的新列
hg['New_counts'] = hg['counts'].apply(lambda x: "{:.3f}".format(x))
hg['New_Total'] = hg['Total'].apply(lambda x: "{:.3f}".format(x))

处理后的DataFrame会变成类似你预期的样子:

HighcountsTotalNew_countsNew_Total
111.24922.49841.2492.498
11.24662.49321.2472.493
201.25741.25741.2571.257
191.25471.25471.2551.255
181.25231.25231.2521.252

额外提示:保留原始数据的安全操作

如果担心误改原数据,可以先复制一份hg再操作:

hg_safe = hg.copy()
# 然后在hg_safe上执行上述格式化代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:39:36