我正在尝试使用str.match来精确匹配短语,但要针对每一行字符串中的每个单词。我想返回正确行的行索引号,这就是为什么我使用str.match而不是regex的原因。
我想返回完全包含“ FL”而不是“ FLORIDA”的行的索引。但是使用str.contains的问题在于,它向我返回了带有“ FLORIDA”的行的索引。
import pandas as pd
data = [['Alex in FL','ten'],['Bob in FLORIDA','five'],['Will in GA','three']]
df = pd.DataFrame(data,columns=['Name','Age'])
df.index[df['Name'].str.contains('FL')]
df.index[df['Name'].str.match('FL')]
数据框的外观如下:
Name Age
0 Alex in FL ten
1 Bob in FLORIDA five
2 Will in GA three
输出应返回第0行的索引: Int64Index([0],dtype ='int64')
答案 0 :(得分:3)
使用包含单词边界的包含内容
<div>
<div class="slideshow-container">
<button onclick = "onClick()" id="btn1" type="button" class="btn"> Zoom In</button>
<button onclick = "zoomOut()" id= "btn2" type= "button" class="btn" >Cancel</button>
<div class="img-magnifier-container mySlides">
<img id = "img1" src="img1.jpg" width="800" height="600">
</div>
<div class="img-magnifier-container mySlides">
<img id = "img2" src="img2.jpg" width="800" height="600" >
</div>
<div class="img-magnifier-container mySlides">
<img id = "img4" src="img4.jpg" width="800" height="600">
</div>
</div>
输出
import pandas as pd
data = [['Alex in FL','ten'],['Bob in FLORIDA','five'],['Will in GA','three']]
df = pd.DataFrame(data,columns=['Name','Age'])
print(df.index[df['Name'].str.contains(r'\bFL\b')])
答案 1 :(得分:1)
尝试:
df[df.Name.str.contains(r'\bFL\b', regex=True)]
OR
df[['FL' in i for i in df.Name.str.split('\s')]]
输出:
Name Age
0 Alex in FL ten
答案 2 :(得分:0)
docs说它正在将正则表达式与表达式(在您的情况下为“ FL”)匹配。由于“ FLORIDA”确实包含该子字符串,因此它确实匹配。
您可以这样做的一种方法是匹配“ FL”(用空格填充),但是您还需要用空格填充每个值(当“ FL”是字符串的结尾时) )。