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

将DataFrame列转换为Integer类型并删除非整数类型行的实现方案

Pandas DataFrame 列转整型并删除非整数行实现方法

以下基于pandas库操作,假设你需要处理的目标列名为target_col:

基础实现(仅排除无法转为数值的内容)

  • 第一步:将目标列内容转为数值类型,无法转换的内容会自动设为NaN
import pandas as pd

df['target_col'] = pd.to_numeric(df['target_col'], errors='coerce')
  • 第二步:删除目标列为NaN的行,同时将剩余内容转为整数类型
# 这里使用Int64类型(大写I)是pandas支持空值的整数类型,无空值可替换为小写int
df = df.dropna(subset=['target_col']).astype({'target_col': 'Int64'})

严格实现(同时排除取值为非整数的浮点数,如2.5、3.7等)

如果需要过滤掉小数部分非0的数值,仅保留本身为整数的内容,可以调整过滤逻辑:

import pandas as pd

df['target_col'] = pd.to_numeric(df['target_col'], errors='coerce')
# 同时过滤NaN和小数部分不为0的行
df = df[df['target_col'].notna() & (df['target_col'] % 1 == 0)].astype({'target_col': 'Int64'})

测试用例

你可以用以下测试数据验证效果:

# 原始测试数据
df = pd.DataFrame({'target_col': ['1', '2.5', '3', 'abc', 4.0, 5.7, None]})
# 执行上述严格实现代码后,剩余行的target_col值为1、3、4,类型为Int64

注意:如果你的原始数据处理后仍存在空值,必须使用Int64类型,小写int不支持列中存在空值,会强制转为float类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:39:02