Python 在excel列中搜索匹配的文本值,打印行

Python 在excel列中搜索匹配的文本值,打印行,python,regex,excel,pandas,python-3.7,Python,Regex,Excel,Pandas,Python 3.7,在这里,我从不同的文档中获取名称和zip值;并存储在变量中:(工作正常) 然后我只想搜索我的excel文件以找到匹配项;如果找到名称文本值,则获取行号: data = pd.read_excel(config.Excel2) row_number = data[data['Member Name'].str.contains(Name)].index.min() print(row_number) 上面打印时输出的行号不

在这里,我从不同的文档中获取名称和zip值;并存储在变量中:(工作正常)

然后我只想搜索我的excel文件以找到匹配项;如果找到
名称
文本值,则获取行号:

            data = pd.read_excel(config.Excel2)

            row_number = data[data['Member Name'].str.contains(Name)].index.min()
            print(row_number)
上面打印时输出的行号不正确,我不明白为什么。i、 e.它不会打印在我的excel文档中找到匹配文本值的行。它打印的行号错误,与
名称不匹配

然后,我试过这样的东西;但这根本不输出任何内容:(输出关键错误)

关于如何实现这一点有什么想法吗

我的excel如下所示(大约11000行,如下图所示,8列)


我没有您的excel文件,因此我设置了以下代码:

import pandas as pd
names = ["RHONDA GILBERT", "FRED FLINTSTONE", "FRED FLINTSTONE", "BARNEY RUBLE", "RHONDA GILBERT"]
add1 = ["123 Elm St", "254 Pine Ave", "254 Pine Ave", "654 Spruce Grove", "123 Elm St"]
df = pd.DataFrame(list(zip(names, add1)), 
   columns =['Member Name', 'Member Address Line 1']) 
df
它提供了以下输出:

    Member Name     Member Address Line 1
0   RHONDA GILBERT  123 Elm St
1   FRED FLINTSTONE 254 Pine Ave
2   FRED FLINTSTONE 254 Pine Ave
3   BARNEY RUBLE    654 Spruce Grove
4   RHONDA GILBERT  123 Elm St
如果我现在搜索“FRED”,那么我会这样写:

Name = "FRED"
matches = df[df['Member Name'].str.contains(Name)]
matches
我得到的结果是:

    Member Name     Member  Address Line 1
1   FRED FLINTSTONE 254 Pine Ave
2   FRED FLINTSTONE 254 Pine Ave
注意,如果我询问匹配的索引,我会得到

matches.index
# outputs
Int64Index([1, 2], dtype='int64')
这些是df的原始指数。然后寻找索引的最小值

matches.index.min()
# outputs
1

这是指数的最小值。我不太确定你的结果与上述有何偏差。如果您愿意澄清,我将更改我的解释。

您能显示
data.head()
输出吗?你能举一个不正确的行号的例子吗?刚刚测试了这个,你的代码对我有效,你能打印
Name=find\u Name.group(0)
的输出吗?所以在两种情况下使用“Member Name”都会输出“keyrerror”。使用其他列名是可行的,但输出的行号不正确(即未找到匹配文本的位置)
    Member Name     Member  Address Line 1
1   FRED FLINTSTONE 254 Pine Ave
2   FRED FLINTSTONE 254 Pine Ave
matches.index
# outputs
Int64Index([1, 2], dtype='int64')
matches.index.min()
# outputs
1