Python 3.x 筛选数据帧行

Python 3.x 筛选数据帧行,python-3.x,pandas,Python 3.x,Pandas,我有一个数据框,它有一列数字。列的数据是由逗号分隔的数字字符串 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,并对这两种情况进行比较。最

我有一个数据框,它有一列数字。列的数据是由逗号分隔的数字字符串

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
如何获取仅包含数字15的所有字符串

所需输出:

numbers
-------
1,3,4,5,17,30
1,2,5,14,19,20
1,5,13,20,29,31

您可以创建df,并对这两种情况进行比较。最后筛选人:

另一种具有以下条件的解决方案:

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

您想要的输出是什么?如果需要
1
5
,我们可以使用一个regexyes来过滤数据。但是如果需要
1
5
我想不会。我的意思是,我们可以编写一个正则表达式,同时过滤所有包含1和5的字符串。
df1.eq(1)。any(1)&df1.eq(5)。any(1)
可以替换为
df1.isin([1,5])。any(1)
,no?@HmH-我认为不可能检查它,因为需要
,而不是
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