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

如何识别Pandas DataFrame中包含dict的列?

解决方法

你的问题出在只检查了列的第一个元素,但d、t列的第一个元素是np.nan而非dict,所以无法正确识别。以下是可行的解决方案:

方法一:使用apply+any筛选目标列

通过对每一列的元素进行类型检查,判断是否存在至少一个dict:

import pandas as pd
import numpy as np 

df = pd.DataFrame({
                   'i': [0, 1, 2, 3],
                   'd': [np.nan, {'p':1}, {'q':2}, np.nan],
                   't': [np.nan, {'u':1}, {'v':2}, np.nan]
                 })

# 筛选包含至少一个dict的列
cdict = [col for col in df.columns if df[col].apply(lambda x: isinstance(x, dict)).any()]
print(cdict)  # 输出: ['d', 't']

关于“无需遍历每个单元格”的说明

由于你的DataFrame列是混合类型(包含np.nan和dict),Pandas没有内置的直接方法可以跳过元素检查来判断列中是否存在dict。不过上面的方式是利用Pandas的向量化操作实现的,比手动逐个遍历单元格的效率更高,本质上是Pandas内部优化了遍历过程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:57:41