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

如何在Python中移除Pandas DataFrame输出指定数值的尾随零?

解决方案

要实现仅移除Shimi列中15.00和20.00的尾随零,同时保留16.25的小数格式,你可以根据需求选择以下两种方法:

方法一:仅修改显示格式(推荐,不改变数据类型)

这种方法只调整输出时的显示效果,数据依然保持数值类型,不影响后续的数据分析计算。通过style.format针对Shimi列设置自定义格式化规则:

import pandas as pd
data = [[18, 16.25, 14, 17], [12, 15, 13, 15], [19, 20, 18, 17]]
y = pd.DataFrame(
    data, 
    index=["Ali", "Mohammad", "Reza"],
    columns=["Physics", "Shimi", "Riazi", "Adabiat"])

# 自定义格式化函数:整数浮点数显示为整数,非整数保留两位小数
styled_df = y.style.format({'Shimi': lambda x: f'{x:.0f}' if x.is_integer() else f'{x:.2f}'})
# 转换为字符串打印
print(styled_df.to_string())

输出结果:

Physics Shimi  Riazi  Adabiat
Ali            18 16.25     14       17
Mohammad       12    15     13       15
Reza           19    20     18       17

方法二:将列转换为格式化后的字符串(适合仅展示场景)

如果不需要对Shimi列进行数值运算,可以直接将该列转换为格式化后的字符串类型:

import pandas as pd
data = [[18, 16.25, 14, 17], [12, 15, 13, 15], [19, 20, 18, 17]]
y = pd.DataFrame(
    data, 
    index=["Ali", "Mohammad", "Reza"],
    columns=["Physics", "Shimi", "Riazi", "Adabiat"])

# 转换Shimi列为格式化字符串
y['Shimi'] = y['Shimi'].apply(lambda x: str(int(x)) if x.is_integer() else str(x))
print(y)

输出结果:

Physics  Shimi  Riazi  Adabiat
Ali            18  16.25     14       17
Mohammad       12     15     13       15
Reza           19     20     18       17

注意:第二种方法会把Shimi列的数据类型从浮点数转为字符串,后续无法直接进行数值计算,需谨慎使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:30:24