如何使用 python 在 xlsx 文件中查找特定关键字?
How to find specifics keywords in a xlsx file using python?
我有一个 xlsx 文件,其中包含游戏名称、它们的价格以及我们可以找到它们的 link 网站。我正在尝试制作一个程序,有人可以在其中输入一个词,该程序将搜索名称中包含该词的每个游戏并显示其价格和 link.
nome preco link
0 Fifa 20 R$ 164,90
1 FIFA 19 R$ 84,90 https://www.americanas.com.br/produto/13379718...
2 EFootball PES 2020 R$ 93,88 https://www.americanas.com.br/produto/13456974...
3 Forza Horizon 4 R$ 199,90 https://www.americanas.com.br/produto/13379732...
4 Mortal Kombat 11 R$ 129,90 https://www.americanas.com.br/produto/13416378...
由于我是初学者,所以我不知道如何开始,尽管我已经尝试过正则表达式。有人可以帮我吗?谢谢
首先将整个内容加载到 pandas
数据框中。
import pandas as pd
df = pd.read_excel('my_file.xlsx')
然后假设你不需要花哨的东西UI:
nm = input('Enter a partial name of a game: ')
print(df[df['name'].str.contains(nm)])
现在只打印数据帧的片段。如果你想抓取一个特定的单元格:
link = df.loc[df['name'].str.contains(nm), 'link']
print(link)
如果您想查看包含 nm
但仅某些列的所有游戏,您可以执行此操作...(包含 to_string()
以确保显示整个数据框)
disp_cols = ['nome', 'preco', 'link']
print(df.loc[df['name'].str.contains(nm), disp_cols].to_string())
或者您可以循环遍历它们,类似于@b-bogart 解决方案。我还认为使用 .lower()
通常是一个好主意,可以让用户的生活更轻松,并避免麻烦的数据清理。
我会使用 pandas 导入和搜索,然后遍历结果并打印输出。
import pandas as pd
df = pd.read_excel('64653127.xlsx')
search = 'fifa'
#use str.lower() for case insensitive results
results = df[df['nome'].str.lower().str.contains(search)]
#print(results)
for index, row in results.iterrows():
print(str(row['nome']) + ' link: ' + str(row['link']))
输出为:
Fifa 20 link: nan
FIFA 19 link: https://www.americanas.com.br/produto/13379718...
我有一个 xlsx 文件,其中包含游戏名称、它们的价格以及我们可以找到它们的 link 网站。我正在尝试制作一个程序,有人可以在其中输入一个词,该程序将搜索名称中包含该词的每个游戏并显示其价格和 link.
nome preco link
0 Fifa 20 R$ 164,90
1 FIFA 19 R$ 84,90 https://www.americanas.com.br/produto/13379718...
2 EFootball PES 2020 R$ 93,88 https://www.americanas.com.br/produto/13456974...
3 Forza Horizon 4 R$ 199,90 https://www.americanas.com.br/produto/13379732...
4 Mortal Kombat 11 R$ 129,90 https://www.americanas.com.br/produto/13416378...
由于我是初学者,所以我不知道如何开始,尽管我已经尝试过正则表达式。有人可以帮我吗?谢谢
首先将整个内容加载到 pandas
数据框中。
import pandas as pd
df = pd.read_excel('my_file.xlsx')
然后假设你不需要花哨的东西UI:
nm = input('Enter a partial name of a game: ')
print(df[df['name'].str.contains(nm)])
现在只打印数据帧的片段。如果你想抓取一个特定的单元格:
link = df.loc[df['name'].str.contains(nm), 'link']
print(link)
如果您想查看包含 nm
但仅某些列的所有游戏,您可以执行此操作...(包含 to_string()
以确保显示整个数据框)
disp_cols = ['nome', 'preco', 'link']
print(df.loc[df['name'].str.contains(nm), disp_cols].to_string())
或者您可以循环遍历它们,类似于@b-bogart 解决方案。我还认为使用 .lower()
通常是一个好主意,可以让用户的生活更轻松,并避免麻烦的数据清理。
我会使用 pandas 导入和搜索,然后遍历结果并打印输出。
import pandas as pd
df = pd.read_excel('64653127.xlsx')
search = 'fifa'
#use str.lower() for case insensitive results
results = df[df['nome'].str.lower().str.contains(search)]
#print(results)
for index, row in results.iterrows():
print(str(row['nome']) + ' link: ' + str(row['link']))
输出为:
Fifa 20 link: nan
FIFA 19 link: https://www.americanas.com.br/produto/13379718...