![](/img/trans.png)
[英]How to check if all the elements in list in one pandas column are present in another pandas column
[英]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.