数据帧中每个字符串的Python-str.match
我试图使用str.match精确匹配一个短语,但针对每行字符串中的每个单词。我想为正确的行返回行的索引号,这就是为什么我使用str.match而不是regex 我想返回正好包含“FL”而不是“FLORIDA”的行的索引。但是,使用str.contains的问题是,它会将带有“FLORIDA”的行的索引返回给我数据帧中每个字符串的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
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