Python基于关键字在Excel工作表中搜索一行并返回该行

2024-06-01 05:05:01 发布

您现在位置:Python中文网/ 问答频道 /正文

披露:我不是这方面的专家,也没有太多的实践经验。然而,我花了几个小时试图自己解决这个问题

我有一张excel表格,上面有数千个对象序列号和地址。我正在尝试编写一个脚本,该脚本将在“a”和“B”列中搜索序列号或地址,并返回整行以及特定对象的附加信息。我试图使用python编写这个脚本,因为我试图将它与一个先前存在的脚本集成,我必须访问其他源代码。使用Pandas,我已经能够加载.xls工作表并返回所有电子表格的值,但我不知道如何搜索它,以便只返回与我所说内容相关的行

excel sheet example

以下是我的代码:

import pandas as pd
data = pd.read_excel('my/path/to.xls')
print(data.head())

我可以使用打印功能打印工作表的各个部分,但是每当我尝试向其中添加搜索功能时,我都会迷路,并且我的在线研究没有什么帮助。A.)是否有更好的python模块用于此任务?或B.)如何实现搜索功能,以将一行数据作为变量返回,以显示和/或用于程序的其他方面


Tags: 对象功能脚本信息data源代码地址xls
1条回答
网友
1楼 · 发布于 2024-06-01 05:05:01

像这样的东西应该可以工作,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)]

希望这能让你开始

相关问题 更多 >