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

在Lambda中用Pandas转字符串列为整数:空字符串转Null报错问题

解决Pandas转换含空字符串的字符串列到整数(带Null)的问题

你的报错原因是:直接用astype(int)时,空字符串会被转换为NaN(浮点数类型的缺失值),而普通的整数类型(int)不支持存储缺失值,所以触发报错。要实现需求,需要使用Pandas的可空整数类型(Int64,注意大写的I),配合缺失值转换处理,具体有两种可行方案:

方案1:先替换空串为可空缺失值,再转类型

import pandas as pd

# 假设df是从OpenSearch获取的数据集
df['units'] = df['units'].replace('', pd.NA).astype('Int64')
  • 先用replace('', pd.NA)把空字符串替换为Pandas标准的可空缺失值pd.NA
  • 再用astype('Int64')转换为支持缺失值的整数类型,最终结果里空串对应的就是Null,数字字符串转为整数

方案2:用pd.to_numeric自动处理转换

import pandas as pd

df['units'] = pd.to_numeric(df['units'], errors='coerce').astype('Int64')
  • pd.to_numeric会尝试把字符串转为数字,errors='coerce'参数会把无法转换的内容(比如空串)转为NaN
  • 再转成Int64类型,将NaN转为Pandas支持的Null,同时保留整数类型

这两种方法都能满足你的需求,在AWS Lambda环境中,只要使用的Pandas版本≥0.24.0(当前Lambda默认环境的Pandas版本已满足),就可以正常使用Int64可空类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:57:36