如何使用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
相关产品推荐
相关产品推荐

