Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何返回熊猫系列中字符串的匹配部分?_Python_Regex_Pandas - Fatal编程技术网

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

Python 如何返回熊猫系列中字符串的匹配部分?,python,regex,pandas,Python,Regex,Pandas,我有如下代码: df[df[“A”].str.contains(“\d+”) 这可以有效地将序列中的所有行与单词match某处匹配。但是,它还匹配(如预期的)样式行: 1,“ab:123” 我希望函数只返回字符串的匹配部分(“123”),而不是整个字符串。这可能吗?例如,使用- df[df["A"].str.contains("\d+")]['A'].str.extract("(\d+)") 示例/演示- In [41]: df = pd.DataFrame([['123'],['ab 12

我有如下代码:

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

这可以有效地将序列中的所有行与单词match某处匹配。但是,它还匹配(如预期的)样式行:

1,“ab:123”

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

例如,使用-

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