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

如何消除pyplot表格中的数值小数位?

解决Pyplot表格显示多余小数位的问题

问题核心是合并后的DataFrame数值被Pyplot表格以浮点格式渲染,哪怕原始数据是整数。以下是几种可行的解决方法:

方法一:合并后统一转换数据类型

如果合并后的表格没有缺失值,直接将所有数值列转为整数类型:

frames = [country_tab, country_birth_tab] 
result = pd.concat(frames, axis=1)
# 转为整数类型(无缺失值时适用)
result = result.astype(int)

# 后续绘图代码不变
ax = plt.subplot(111, frame_on=False)
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)

table2 = ax.table(cellText=result.values, colLabels=result.columns, loc='center') 
table2.auto_set_font_size(False)
table2.set_fontsize(16)
table2.scale(4,4)
plt.show()

如果存在缺失值,用lambda表达式格式化每个元素:

result = result.applymap(lambda x: f"{int(x)}" if pd.notna(x) and isinstance(x, (int, float)) else x)

方法二:创建表格时指定单元格文本格式

直接在生成Pyplot表格时,手动将数值转为整数格式的字符串,精准控制显示效果:

frames = [country_tab, country_birth_tab] 
result = pd.concat(frames, axis=1)

ax = plt.subplot(111, frame_on=False)
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)

# 逐行格式化数值为整数文本
cell_text = []
for _, row in result.iterrows():
    formatted_row = []
    for val in row:
        if isinstance(val, (int, float)) and pd.notna(val):
            formatted_row.append(f"{int(val)}")
        else:
            formatted_row.append(str(val))
    cell_text.append(formatted_row)

# 传入格式化后的文本创建表格
table2 = ax.table(cellText=cell_text, colLabels=result.columns, loc='center') 
table2.auto_set_font_size(False)
table2.set_fontsize(16)
table2.scale(4,4)
plt.show()

为什么之前取整操作没生效?

如果之前用了round(0)之类的取整方法,结果仍然是浮点类型(比如5.0),Pyplot表格会默认显示为带小数的格式。只有将数据转为整数类型,或者直接转为无小数的字符串,才能彻底解决显示问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:54:58