将列中的熊猫列表与外部列表进行比较

给定一个示例数据框列:

colA           colB
1              [20,40,50,60]
2              [20,70,80]
3              [10,90,100]

并给出这个列表 test_lst = [20, 45, 35]

我试图研制一种能够过滤我数据帧,只显示行中,在列表中的至少一个值colB是在test_lst

尝试了几种技术。最新的是这个:

df[any(x in df['colB'] for x in test_lst)]

我相信这里的一些 Pandas/Python 专家已经准备好了。我很感激你花时间检查这个谜(至少对我来说是一个谜)。

回答

您可以使用set.intersection

test_lst = [20, 45, 35]
print(df[df.colB.apply(lambda x: set(x).intersection(test_lst)).astype(bool)])
test_lst = [20, 45, 35]
print(df[df.colB.apply(lambda x: set(x).intersection(test_lst)).astype(bool)])

印刷:


以上是将列中的熊猫列表与外部列表进行比较的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>