使用math.isnan()判断DataFrame列空单元格并按规则返回结果
解决方案
适用前提
math.isnan()仅支持判断数值类型的NaN空值,使用前请确认你要处理的DataFrame列的非空值均为数值类型,否则会触发TypeError。
实现代码
首先导入依赖库:
import math import pandas as pd
假设你的DataFrame命名为df,要处理的目标列名为target_col,可以通过apply方法完成规则转换,处理结果可存入新列processed_col:
df['processed_col'] = df['target_col'].apply(lambda x: x if not math.isnan(x) else 'empty')
完整测试示例
# 构造测试数据 df = pd.DataFrame({ 'target_col': [1.0, 3.2, None, 5.7, None, 9] }) # 按规则处理列 df['processed_col'] = df['target_col'].apply(lambda x: x if not math.isnan(x) else 'empty') # 输出结果 print(df)
运行后输出结果如下:
target_col processed_col 0 1.0 1.0 1 3.2 3.2 2 NaN empty 3 5.7 5.7 4 NaN empty 5 9.0 9.0
注意事项
- 处理后的列会变为
object类型,因为同时包含数值和字符串empty两类数据 - 如果你的目标列存在非数值类型的空值(比如字符串空、时间类型空值
NaT),更推荐使用pandas原生的pd.isna()方法做判断,兼容性更强
内容的提问来源于stack exchange,提问作者Selin yildirim
相关产品推荐
相关产品推荐

