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

Pandas:如何查找DataFrame中存储的复数类型数据

问题原因

pd.api.types.is_complex_dtype返回False是因为该API用于判断整列的统一数据类型是否为复数类型,而你的ir_mt_1y列是object类型,列内混合存储了float和复数两种类型的元素,不属于Pandas原生的统一复数数值类型,因此检测不生效。你看到head返回的都是float,是因为前5行刚好都是正常数值,复数存在于后续行中。

定位指定列的复数数据

执行以下代码即可筛选出ir_mt_1y列中所有包含复数的行:

# 筛选ir_mt_1y列中元素为复数类型的行
complex_rows_in_target_col = test[test['ir_mt_1y'].apply(lambda x: isinstance(x, complex))]
# 输出对应行的索引和数值
print(complex_rows_in_target_col['ir_mt_1y'])

全表扫描所有复数数据

如果需要检查整个DataFrame所有列的复数数据,执行以下代码即可:

# 仅遍历object类型列(只有object列支持混存不同类型的元素)
for col in test.select_dtypes(include='O').columns:
    is_complex_mask = test[col].apply(lambda x: isinstance(x, complex))
    if is_complex_mask.any():
        print(f"列【{col}】存在复数数据,共{is_complex_mask.sum()}行,行索引:")
        print(test[is_complex_mask].index.tolist())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:06:03