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

如何将包含整数、NaN和字符串的列转换为仅含整数与NaN的列

解决方案

可以使用 pandas 的 pd.to_numeric() 函数结合可空整数类型来实现需求,具体步骤如下:

代码实现

import pandas as pd

# 定义原始 DataFrame
df = pd.DataFrame({
    'name': ['John','Mary', 'Phil', 'Sue', 'Robert', 'Lucy', 'Blake'],
    'age': ['15', '20s', 37, 'teen', '', 'elderly', 57]
})

# 转换 age 列:无法转为数字的内容替换为 NaN,再转为支持 NaN 的整数类型
df['age'] = pd.to_numeric(df['age'], errors='coerce').astype('Int64')

print(df)

代码说明

  • pd.to_numeric(df['age'], errors='coerce'):该函数会尝试将 age 列的每个元素转换为数值类型,转换失败的元素(如带字母的字符串、空值)会被强制替换为 NaN。
  • .astype('Int64'):由于普通整数类型(int64)无法存储 NaN,这里使用 pandas 的可空整数类型 Int64(大写开头),既保留整数类型,又能兼容 NaN 值。

执行结果

name   age
0    John    15
1    Mary  <NA>
2    Phil    37
3     Sue  <NA>
4  Robert  <NA>
5    Lucy  <NA>
6   Blake    57

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:35:43