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

Pandas如何打印指定行列名与对应值并保留正确数据类型

问题原因

你遇到的int输出变float的问题来自两个核心原因:

  • 旧版本pandas中int类型无法存储NaN空值,只要列中存在空值,整列会被自动强转为float类型,你调用fillna(0)时这个类型转换已经发生
  • 调用to_string()输出时,pandas会统一整行的输出类型,只要存在float类型值,所有int都会以带.0的float格式输出
优化实现方案

直接遍历目标行的键值对输出即可,既可以保留原始数据类型的展示格式,也完全符合你要的逐行展示效果,代码如下:

import pandas as pd
import numpy as np

df1 = pd.read_csv('mortality_inhospital_dataset1.csv')
# 转换为支持空值的原生数据类型,避免int存空值被强转float
df1 = df1.convert_dtypes()
df1 = df1.set_index('ID', inplace = False)
target_row = df1.loc[125047]

# 逐行打印列名与对应值,空值填充为0且保留原始类型格式
for col, val in target_row.fillna(0).items():
    # 兼容可空整数类型的输出格式
    if pd.api.types.is_integer(val):
        val = int(val)
    print(f"{col}: {val}")
方案优势
  • 完全符合预期输出格式:原始为int的数值会输出整数,原始为float的数值保留小数,不会出现.0后缀
  • 效率更高:不需要做全量的字符串转换,遍历输出的时间复杂度为O(列数),性能优于原有方案
  • 灵活性更强:如果后续需要对指定行的数值做其他处理,直接操作遍历得到的val即可,不需要再做类型解析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:06:08