如何让Pandas DataFrame的float列中整数显示为无小数点形式?
实现Pandas DataFrame列混合显示整数与浮点数
当然可行,下面提供几种实用的实现方式,按需选择:
方法1:修改数据类型,永久转换显示格式
这种方式会把列转为object类型,直接改变数据存储形式,后续查看或导出时都会按整数/浮点数混合显示:
import pandas as pd # 示例数据 df = pd.DataFrame({'target_col': [0.0, 0.555, 0.2323, 0.0, 50.0]}) # 自定义转换函数 def convert_num(x): # 判断是否为整数浮点数 if x.is_integer(): return int(x) return x # 应用到目标列 df['target_col'] = df['target_col'].apply(convert_num) print(df)
输出结果:
target_col 0 0 1 0.555 2 0.2323 3 0 4 50
方法2:仅修改显示样式,不改变底层数据
如果不想修改原数据的float类型,只是在展示时调整格式(比如Jupyter Notebook报表、可视化输出),可以用style.format:
# 保持列的float类型,仅调整显示逻辑 styled_df = df.style.format(lambda x: f"{x:.0f}" if x.is_integer() else x) display(styled_df)
这种方式不会改变DataFrame的底层数据类型,只是渲染时替换显示文本,适合仅需展示的场景。
注意事项
- 方法1会将列转为
object类型,若后续需要做数值计算,可能需要再转回float; - 若列中存在
NaN值,需要在自定义函数中额外处理,避免报错,比如:def convert_num(x): if pd.isna(x): return x if x.is_integer(): return int(x) return x
内容的提问来源于stack exchange,提问作者bigdataadd
相关产品推荐
相关产品推荐

