【发布时间】:2020-11-03 02:57:22
【问题描述】:
这是我的数据:
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 不起作用?
【问题讨论】:
标签: python regex pandas dataframe