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

如何在Pandas DataFrame中查看不同行之间的缺失元素?

Pandas行间字符串元素缺失对比实现方案

实现思路

核心是利用集合的差集特性快速定位两个字符串集合的差异:先把每行的逗号分隔字符串拆分成元素集合,再通过集合运算得到彼此缺失的元素,最后转成列表输出即可。

完整代码实现

import pandas as pd

# 初始化目标DataFrame
df = pd.DataFrame({"col1": ['A', 'B'], "col2":['x,yg,z', 'gf,ui,x']})

# 提取A、B对应的字符串并拆分为元素列表
a_elements = df.loc[df['col1'] == 'A', 'col2'].iloc[0].split(',')
b_elements = df.loc[df['col1'] == 'B', 'col2'].iloc[0].split(',')

# 转换为集合以利用差集运算
set_a = set(a_elements)
set_b = set(b_elements)

# 计算彼此缺失的元素
present_in_A_and_missing_in_B = list(set_a - set_b)
present_in_B_and_missing_in_A = list(set_b - set_a)

# 按需求格式输出结果
print("present_in_A_and_missing_in_B ")
print(present_in_A_and_missing_in_B)
print("\npresent_in_B_and_missing_in_A ")
print(present_in_B_and_missing_in_A)

代码说明

  • 用loc精准定位到A、B对应的行,提取col2字段后用split(',')拆分出单个元素
  • 集合的差集操作(-)能直接筛选出「存在于当前集合但不存在于对比集合」的元素,效率远高于循环遍历
  • 最后将差集结果转回列表,按要求格式打印即可

运行结果

present_in_A_and_missing_in_B 
['yg', 'z']

present_in_B_and_missing_in_A 
['gf', 'ui']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:24:57