繁体   English   中英

检查列表的一个或多个元素是否存在于 Pandas 列中

[英]Check if one or more elements of a list are present in Pandas column

这个问题是以下问题的扩展检查 pandas 列是否包含列表中的所有元素

在问题中,为了派生 output,检查列表的所有成员以获取 Pandas 列中的列表。 我需要检查列表中的一个或多个元素,即即使列表中只有一个元素在 pandas 列中匹配,我想在 output 中考虑

样本数据将是

frame = pd.DataFrame({'a' : ['a,b,c', 'a,c,f', 'b,d,f','a,z,c']})


letters = ['a','c','m']

我想从 df 中获取找到字母列表的一个或多个元素的所有行

您可以将issubset更改为isdisjoint以查找不常见的值,因此添加~用于反向掩码:

letters = ['a','c','m']

letters_s = set(letters)
df = frame[~frame.a.str.split(',').map(letters_s.isdisjoint)]
print(df)
       a
0  a,b,c
1  a,c,f
3  a,z,c

或者第一个解决方案可以由np.any修改以测试至少一个匹配:

contains = [frame['a'].str.contains(i) for i in letters]
df = frame[np.any(contains, axis=0)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM