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

Python中筛选DataFrame列含指定列表元素的行并导出

解决DataFrame中筛选包含指定元素的列表列问题

你的问题核心是isin()方法只会匹配单元格的整体值(比如整个列表或者单独的None),而无法检查列表类型单元格内部的元素。下面是直接可用的解决方案:

步骤1:生成筛选掩码

通过apply()遍历Tlf列的每个单元格,检查两种情况:

  • 单元格本身是None且None在目标列表tlf_r中
  • 单元格是列表,且列表中存在任意元素在tlf_r中

代码实现:

import pandas as pd

# 假设你的DataFrame是df_,重复电话列表是tlf_r
tlf_r = [None, 'xxxxxxxxx', 'zzzzzzzzz']

# 生成筛选掩码
mask = df_['Tlf'].apply(
    lambda x: (x is None and None in tlf_r) or 
              (isinstance(x, list) and any(item in tlf_r for item in x))
)

步骤2:筛选行并导出索引

用掩码筛选出符合条件的行,提取索引后导出到CSV:

# 获取匹配行的索引
matching_indices = df_[mask].index

# 将索引导出为CSV(保留列名,不写额外索引)
matching_indices.to_frame(name='User_Index').to_csv('matching_users.csv', index=False)

补充说明

  • 如果Tlf列的列表中包含None(比如[None, '123456']),代码会自动匹配tlf_r中的None
  • 若tlf_r中没有None,可以删掉掩码里的第一个判断条件,简化逻辑

内容的提问来源于stack exchange,提问作者Pablo Moreira Garcia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:43:16