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

如何读取含整数与浮点数混合的CSV列并保留原始类型

保留CSV原始数值类型加载并判断浮点数列的方法

一、加载CSV时保留混合数值类型

pandas 默认会把同时包含整数和浮点数的列统一转换为 float64 类型,要避免这种自动转换,你可以通过自定义转换器来保留原始的整数/浮点数类型:

import pandas as pd

# 定义自定义转换函数:优先转整数,失败则转浮点数
def convert_elev(value):
    try:
        return int(value)
    except ValueError:
        return float(value)

# 加载CSV时指定转换器处理目标列
final_collar = pd.read_csv('你的文件路径.csv', converters={'ELEV': convert_elev})

这样加载后,ELEV 列会同时存在 int 和 float 类型的原始值,不会被统一转为浮点数。

二、创建布尔列判断是否为浮点数

你原来的代码逻辑有误(直接将值与 float 类比较无法判断类型),正确的做法是通过判断每个元素的类型来生成布尔列:

方法1:使用 apply 直接生成

final_collar['ELEV_FLOAT'] = final_collar['ELEV'].apply(lambda x: isinstance(x, float))

方法2:结合 np.where 使用

import numpy as np

final_collar['ELEV_FLOAT'] = np.where(
    final_collar['ELEV'].apply(lambda x: isinstance(x, float)),
    True,
    False
)

执行后,ELEV_FLOAT 列会标记对应行的 ELEV 值是否为浮点数类型。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:10:45