Python基于关键字在Excel工作表中搜索一行并返回该行
披露:我不是这方面的专家,也没有太多的实践经验。然而,我花了几个小时试图自己解决这个问题 我有一张excel表格,上面有数千个对象序列号和地址。我正在尝试编写一个脚本,该脚本将在“a”和“B”列中搜索序列号或地址,并返回整行以及特定对象的附加信息。我试图使用python编写这个脚本,因为我试图将它与一个先前存在的脚本集成,我必须访问其他源代码。使用Pandas,我已经能够加载.xls工作表并返回所有电子表格的值,但我不知道如何搜索它,以便只返回与我所说内容相关的行 以下是我的代码:Python基于关键字在Excel工作表中搜索一行并返回该行,python,excel,pandas,Python,Excel,Pandas,披露:我不是这方面的专家,也没有太多的实践经验。然而,我花了几个小时试图自己解决这个问题 我有一张excel表格,上面有数千个对象序列号和地址。我正在尝试编写一个脚本,该脚本将在“a”和“B”列中搜索序列号或地址,并返回整行以及特定对象的附加信息。我试图使用python编写这个脚本,因为我试图将它与一个先前存在的脚本集成,我必须访问其他源代码。使用Pandas,我已经能够加载.xls工作表并返回所有电子表格的值,但我不知道如何搜索它,以便只返回与我所说内容相关的行 以下是我的代码: import
import pandas as pd
data = pd.read_excel('my/path/to.xls')
print(data.head())
我可以使用打印功能打印工作表的各个部分,但是每当我尝试向其中添加搜索功能时,我都会迷路,并且我的在线研究没有什么帮助。A.是否有更好的python模块用于此任务?或者B.如何实现搜索功能以返回一行数据作为变量,以显示和/或用于程序的其他方面?类似的功能应该可以工作,pandas可以处理行、列和索引。我们可以利用这三个优势让您的实用程序正常工作
import pandas as pd
serial_number = input("What is your serial number: ")
address = input("What is your address: ")
# read in dataframe
data = pd.read_excel('my/path/to.xls')
# filter dataframe with a str.contains method.
filter_df = data.loc[(data['A'].str.contains(serial_number))
| data['B'].str.contains(address)]
print(filter_df)
如果您有一个项目列表,例如
serial_nums = [0,5,9,11]
您可以使用isin,它根据列表过滤数据帧
data.loc[data['A'].isin(serial_nums)]
希望这能让你开始 你能分享数据吗?我们知道你想要什么了。还要创建一个最终输出的示例。作为指导:如何使用openpyxl?数据[data['columnname']==value]-或-data.query'colmnname'==value。。。