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

如何使用Pandas实现DataFrame列表字段拆分行并新增重叠值标识列

实现Pandas DataFrame的字段展开与重叠判断

当然可以实现这个需求!我们可以通过Pandas的内置方法快速完成嵌套列表展开和元素匹配判断,具体步骤如下:

步骤1:导入库并构造原始DataFrame

首先确保导入Pandas库,然后创建你提供的初始DataFrame:

import pandas as pd

df = pd.DataFrame({
    "ID": [1, 2],
    "fields": [["eggs", "apple", "toy", "orange", "bear", "red"], ["orange", "bear", "red"]],
    "subfields":[["bear", "red"],["bear", "red"]]
})

步骤2:展开fields列的嵌套列表

使用explode()方法将fields列中的每个列表元素拆分为单独的行,这会自动保留对应的ID和subfields值:

df_exploded = df.explode('fields', ignore_index=True)

步骤3:添加重叠判断列

通过apply()遍历每一行,检查当前fields元素是否存在于该行的subfields列表中,返回'Y'或'N':

df_exploded['overlap between subfields and fields'] = df_exploded.apply(
    lambda row: 'Y' if row['fields'] in row['subfields'] else 'N',
    axis=1
)

步骤4:整理输出结果

最后筛选出需要的三列,就得到了你想要的格式:

result = df_exploded[['ID', 'fields', 'overlap between subfields and fields']]
print(result)

运行代码后输出结果如下:

ID  fields overlap between subfields and fields
0   1    eggs                                     N
1   1   apple                                     N
2   1     toy                                     N
3   1  orange                                     N
4   1    bear                                     Y
5   1     red                                     Y
6   2  orange                                     N
7   2    bear                                     Y
8   2     red                                     Y

这个方法简洁高效,完全匹配你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:17:44