从dataframe单元格列表中的列表中搜索值,并添加另一列结果

2024-10-02 00:27:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个列,其中包含数据帧单元格列表和列表之间的比较结果

我有一个带有列表值的数据框:

df = pd.DataFrame({'A': [['KB4525236', 'KB4485447', 'KB4520724', 'KB3192137', 'KB4509091']], 'B': [['a', 'b']]})

以及具有此值的列表:

findKBs = ['KB4525236','KB4525202']

预期结果:

                                                   A       B            C
0  [KB4525236, KB4485447, KB4520724, KB3192137, K...  [a, b]  [KB4525202]

我不知道如何用单元格列表迭代我的列表并找到不匹配的,你能帮我吗


Tags: 数据dataframedf列表pdkb4525202kb4525236kb4520724
2条回答

您只需像这样比较两个列表:循环遍历findKBs的值,如果它们不在df['A'][0]中,则将它们分配给新列表

df['C'] = [[x for x in findKBs if x not in df['A'][0]]]

结果:

                                                   A       B            C
0  [KB4525236, KB4485447, KB4520724, KB3192137, K...  [a, b]  [KB4525202]

可能有一种以熊猫为中心的方法可以做到这一点,但这似乎是可行的:

df['C'] = [list(filter(lambda el: True if el not in df['A'][0] else False, findKBs))]

相关问题 更多 >

    热门问题