数据帧中每个字符串的Python-str.match

数据帧中每个字符串的Python-str.match,python,pandas,Python,Pandas,我试图使用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','thre

我试图使用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行的索引:
int64索引([0],dtype='int64')

使用包含词边界:

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')])
输出

Int64Index([0], dtype='int64')

将包含与单词边界一起使用:

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')])
输出

Int64Index([0], dtype='int64')
假设它将正则表达式与表达式匹配(在您的例子中为“FL”)。因为“FLORIDA”确实包含该子字符串,所以它确实匹配

一种方法是匹配“FL”(用空格填充),但也需要用空格填充每个值(当“FL”是字符串的结尾时)。

假设它将正则表达式与表达式匹配(“FL”)。因为“FLORIDA”确实包含该子字符串,所以它确实匹配

一种方法是匹配“FL”(用空格填充),但也需要用空格填充每个值(当“FL”是字符串的结尾时)。

尝试:

df[df.Name.str.contains(r'\bFL\b', regex=True)]

输出:

         Name  Age
0  Alex in FL  ten
尝试:

输出:

         Name  Age
0  Alex in FL  ten