我知道如何使用Pandas.Series.str.contains()
方法检查子字符串是否存在于另一个子字符串中。
然而,我想知道,我们如何检查第一个" n" Pandas Series.str的元素包含子串?
以下是我正在使用的一些聚糖的例子:
Neu5Aca2-6Galb1-4GlcNAcb1-3Galb1-4GlcNAcb1-6(Galb1-3)GalNAca-Sp14
Neu5Aca2-6(Neu5Aca2-3Galb1-3)GalNAca-Sp14
Neu5Aca2-3Galb1-4GlcNAcb1-2Mana1-6(Neu5Aca2-6Galb1-4GlcNAcb1-2Mana1-3)Manb1-4GlcNAcb1-4GlcNAcb-Sp12
GalNAca1-3(Fuca1-2)Galb1-3GalNAca1-3(Fuca1-2)Galb1-4GlcNAcb-Sp0
我目前正在str.contains()
检查名称中是否出现a(2-3)
或a(2-6)
,但第三个例子是a2-6
出现在开头和中间。
我的目标是将子串a2-3
与每个字符串中的第一个n
字母隔离开来。这可能吗?
答案 0 :(得分:1)
您可以构建一个更干净地匹配数据的正则表达式,但您可以使用str.slice()
方法在字符串的前n个字符中搜索子字符串
In [128]: glycans
Out[128]:
0 Neu5Aca2-6Galb1-4GlcNAcb1-3Galb1-4GlcNAcb1-6(G...
1 Neu5Aca2-6(Neu5Aca2-3Galb1-3)GalNAca-Sp14
2 Neu5Aca2-3Galb1-4GlcNAcb1-2Mana1-6(Neu5Aca2-6G...
3 GalNAca1-3(Fuca1-2)Galb1-3GalNAca1-3(Fuca1-2)G...
dtype: object
In [134]: glycans.str.slice(0,10).str.contains('a2-3')
Out[134]:
0 False
1 False
2 True
3 False
dtype: bool