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

如何在Python Pandas中修改含NaN值的浮点数列的显示格式?

Pandas含NaN浮点列的显示格式调整需求

现有如下Pandas DataFrame:

col
-------
7.0
2.0
NaN
...

其中col为float类型,希望将浮点数值的显示格式从7.0改为7,但因存在NaN无法直接转为int类型,期望结果:

col
-------
7
2
NaN
...

方法1:转为可空整数类型(修改数据类型)

Pandas支持可空整数类型(Int64,注意大写I),该类型允许列中存在NaN值,转换后数值会以整数形式显示:

import pandas as pd

# 假设你的DataFrame名为df
df['col'] = df['col'].astype('Int64')

转换后,列的类型变为Int64,数值显示为整数,NaN值保留。

方法2:仅调整显示格式(不修改数据类型)

如果不想改变原数据的float类型,只是调整显示效果,可以用style.format设置格式规则:

# 定义格式化函数,对非NaN值去掉小数部分,NaN保持原样
def format_float(x):
    if pd.notna(x):
        return f"{int(x)}"
    return x

# 应用格式
styled_df = df.style.format({'col': format_float})
# 显示格式化后的DataFrame
styled_df

这种方法不会修改原始数据的类型,只是在显示时调整格式。

方法3:简洁的lambda写法

可以用lambda函数简化格式化逻辑:

styled_df = df.style.format({'col': lambda x: f"{int(x)}" if pd.notna(x) else x})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:36:19