我有一个具有一列号的数据框。列的数据是用逗号分隔的数字字符串。
numbers
-------
1,3,4,5,17,30
5,6,18,37,41,42
1,2,5,14,19,20
1,5,13,20,29,31
1,9,10,11,14,17
2,9,13,25,30,35
如何获取仅包含数字1和5的所有字符串?
所需的输出:
numbers
-------
1,3,4,5,17,30
1,2,5,14,19,20
1,5,13,20,29,31
您可以创建df
通过split
与比较eq
有any
两个条件。最后筛选者boolean indexing
:
df1 = df['numbers'].str.split(',', expand=True).astype(int)
df = df[df1.eq(1).any(1) & df1.eq(5).any(1)]
print (df)
numbers
0 1,3,4,5,17,30
2 1,2,5,14,19,20
3 1,5,13,20,29,31
contains
条件的另一种解决方案:
a = df['numbers'].str.contains(',1,|,1$|^1,')
b = df['numbers'].str.contains(',5,|,5$|^5,')
df = df[a & b]
print (df)
numbers
0 1,3,4,5,17,30
2 1,2,5,14,19,20
3 1,5,13,20,29,31
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句