Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.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 熊猫。loc不';使用正则表达式后不能工作?_Python_Regex_Pandas_Dataframe - Fatal编程技术网

Python 熊猫。loc不';使用正则表达式后不能工作?

Python 熊猫。loc不';使用正则表达式后不能工作?,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,以下是我的数据: player pos avg 0 Antonio Brown WR1 1.0 1 Julio Jones (11) WR2 2.3 2 Odell Beckham Jr. (13) WR3 2.8 3 Todd Gurley (11) RB1 4.8 4 DeAndre Hopkins (9) WR4 5.8 ... ... ... ... 546 Kai Forbath (7) K31 538.0 547 Cody Parkey K3

以下是我的数据:


player  pos avg
0   Antonio Brown   WR1 1.0
1   Julio Jones (11)    WR2 2.3
2   Odell Beckham Jr. (13)  WR3 2.8
3   Todd Gurley (11)    RB1 4.8
4   DeAndre Hopkins (9) WR4 5.8
... ... ... ...
546 Kai Forbath (7) K31 538.0
547 Cody Parkey K32 539.0
548 Wil Lutz (5)    K33 542.0
549 Andrew Franks   K34 543.0
550 Caleb Sturgis   K35 544.0
我使用了以下正则表达式代码来去除括号和括号中的所有字符:

df['player'] = df['player'].str.replace(r"\(.*\)","")
这让我得到了我想要的:


player  pos adp
0   Antonio Brown   WR1 1.0
1   Julio Jones WR2 2.3
2   Odell Beckham Jr.   WR3 2.8
3   Todd Gurley RB1 4.8
4   DeAndre Hopkins WR4 5.8
... ... ... ...
546 Kai Forbath K31 538.0
547 Cody Parkey K32 539.0
548 Wil Lutz    K33 542.0
549 Andrew Franks   K34 543.0
550 Caleb Sturgis   K35 544.0
但是现在当我使用.loc时,什么也没有显示

df.loc[(df.player=='Julio Jones')]


player  pos adp pos_adp season
但当我在一个原本没有任何括号的列上使用.loc时,它确实起作用:

df.loc[(df.player=='Antonio Brown')]

player  pos adp pos_adp season
0   Antonio Brown   WR1 1.0 1   2016

这太令人沮丧了,如果我在列上有效地使用正则表达式,.loc为什么不起作用呢?

我相信
“Julio Jones(11)”
在替换之后变成了
“Julio Jones”
,而不是
“Julio Jones”
,因为你去掉了
“(11)”
,而不是
“(11)”
。我建议您使用
df.player.str.strip()
来去除尾随空格和前导空格。

我认为可能是这样,但我在loc:df.loc[(df.player=='Julio Jones')]中添加了一个空格,但仍然没有出现任何结果。我现在就试试.strip()。编辑:带工作。这在很多层面上都是一个绝对的救命恩人。非常感谢你。你知道为什么用.loc结尾的空格不起作用吗?本质上,我是在搜索列中的精确值…很好。我不确定,但可能它不起作用,因为数据中的空间不是常规空间,而是一个特殊字符。