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

如何在Python中比对多个列表并生成元素归属关系的DataFrame

实现代码

直接运行以下代码即可得到符合要求的DataFrame:

import pandas as pd

# 原始列表
list1 = [399826, 399827, 413350, 404450, 399827, 404451]  
list2 = [399825, 399826, 412450, 403650, 391227]  
list3 = [412450, 399827]  
list4 = [399829, 399246, 513350, 404370, 789827, 439931, 404451]  

# 预转集合,大幅提升存在性判断速度,数据量越大优势越明显
set1, set2, set3, set4 = set(list1), set(list2), set(list3), set(list4)
# 提取所有列表的去重合并值,用sorted可实现数值从小到大排序
all_unique = sorted(set(list1 + list2 + list3 + list4))

# 生成目标DataFrame
df = pd.DataFrame({
    "numbers": all_unique,
    "list1": [x in set1 for x in all_unique],
    "list2": [x in set2 for x in all_unique],
    "list3": [x in set3 for x in all_unique],
    "list4": [x in set4 for x in all_unique]
})

补充说明

你编写的returnNotMatches函数用于计算两个列表的差集,仅在你需要提取仅在某个列表中存在的特殊值时使用,生成上述布尔比对表不需要调用该函数。

内容的提问来源于stack exchange,提问作者V.Nouri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:15:04