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

时间:2015-08-03 16:48:36

标签: python regex pandas

我有类似下面的代码:

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

这有效地将系列中的所有行与单词match匹配。但是,它也匹配(如预期的那样)样式的行:

  

1,“ab:123”

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

1 个答案:

答案 0 :(得分:2)

如何使用Series.str.extract,示例 -

from aenum import IntEnum   # or from enum import IntEnum

class Operation(IntEnum):
    START = 0
    STOP = 1

>>> Operation.START
<Operation.START: 0>

>>> Operation['START']
<Operation.START: 0>

>>> Operation(0)
<Operation.START: 0>

>>> Operation.STOP is Operation.STOP
True

>>> list(Operation)
[<Operation.START: 0>, <Operation.STOP: 1>]

>>> Operation.STOP.name
'STOP'

>>> Operation.STOP.value
1

示例/演示 -

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