如何返回Pandas系列中字符串的匹配部分?

2024-04-19 12:26:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下代码:

df[df["A"].str.contains("\d+")]

这将有效地匹配一系列中的所有行,并在某处使用单词match。但是,它也匹配(如预期的那样)样式的行:

1,"ab: 123"

我希望函数只返回字符串的匹配部分(“123”),而不是整个字符串。有可能吗


Tags: 函数字符串代码dfabmatch样式单词
1条回答
网友
1楼 · 发布于 2024-04-19 12:26:33

如何使用^{},例如-

df[df["A"].str.contains("\d+")]['A'].str.extract("(\d+)")

示例/演示-

In [41]: df = pd.DataFrame([['123'],['ab 123'],['xyz']],columns = ['A'])

In [42]: df
Out[42]:
        A
0     123
1  ab 123
2     xyz

In [43]: df[df["A"].str.contains("\d+")]
Out[43]:
        A
0     123
1  ab 123

In [47]: df[df["A"].str.contains("\d+")]['A'].str.extract("(\d+)")
Out[47]:
0    123
1    123
Name: A, dtype: object

In [48]: df['A'].str.extract("(\d+)")
Out[48]:
0    123
1    123
2    NaN
Name: A, dtype: object

相关问题 更多 >