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

无需循环,高效获取Python DataFrame含空字符串的列名

高效查找DataFrame中包含空字符串的列名

首先还原示例DataFrame:

import pandas as pd

# 还原题目中的DataFrame,test列内容为包含空元素的列表
data = {
    'id': [123, 456],
    'type': ['A', 'B'],
    'check': ['Soft', 'Hard'],
    'company': ['', 'GMC'],
    'test': [[1649106820, 100029907158392, '', '', '', '', 123], 
             [1649106812, 100029907158312, '', '', '', '', 456]]
}
df = pd.DataFrame(data)

无循环高效实现方案

通过pandas矢量化操作+apply组合,分两种场景排查:

  1. 列中存在单元格本身为空字符串的情况
  2. 列中存在单元格为列表且包含空字符串元素的情况

执行以下代码即可得到目标集合:

# 1. 筛选单元格本身是空字符串的列
cols_empty_cell = df.columns[(df == '').any()].tolist()

# 2. 筛选单元格为列表且包含空字符串的列
cols_empty_in_list = df.columns[
    df.apply(lambda col: col.apply(lambda x: isinstance(x, list) and '' in x).any())
].tolist()

# 合并结果并转为集合
result = set(cols_empty_cell + cols_empty_in_list)
print(result)  # 输出: {'company', 'test'}

说明

  • 第一种场景用(df == '').any()实现矢量化检查,效率远高于显式循环
  • 第二种场景通过层级apply实现逐列、逐单元格判断,避免了手动遍历
  • 最终结果转为集合,完全匹配题目要求的输出格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:25:17