从给定的csv文件(销售数据)使用python开发基本搜索引擎

2024-04-26 21:13:57 发布

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

Here is the actual problem statement have a look。 销售数据集包括以下详细信息:ID、产品名称、产品线(产品类别)、品牌、上月售出的商品数量和当前价格。 This is the given csv file用户可以在任何情况下或以任何顺序输入搜索文本,或者只输入产品的部分名称。应始终遵循以下指导原则:

•如果搜索文本包含品牌名称,则搜索结果应仅针对相同品牌的产品

•如果搜索文本包含一个产品线(类别)的名称,甚至是一个不完整的名称(例如,“ref”代替“冰箱”),则搜索结果应仅针对相应的产品线(类别)

•在搜索文本中的n个单词中,产品名称中至少应存在n-1个

Example :

Input : Samsung Refrigerators

Output:

Top Selling  Products :

  1307    SAMSUNG REF FF 321L RT34K3953S9 3S    Refrigerators   SAMSUNG 19  29891.79
  1153    SAMSUNG REF FF 253L RT28K3023SE/HL SL 3S  Refrigerators   SAMSUNG 13  21493.38
  1474    SAMSUNG REF FF 275L RT30K3723S8/HL 3S Refrigerators   SAMSUNG 11  26293.64

Lowest Price Products :
  133     SAMSUNG REF DC 192L RR20M182ZR2/HL 3S Refrigerators   SAMSUNG 4   16412.5
  78      SAMSUNG REF DC 192L RR20M282ZR2/NL 3S Refrigerators   SAMSUNG 2   16500
  359     SAMSUNG REF DC 212L RR22M272YS8/NL 4S Refrigerators   SAMSUNG 9   17388.89

Highest Price Products :
163     SAMSUNG REF SBS 826L RF28K9380SG/TL Refrigerators   SAMSUNG 2   218535
115     SAMSUNG REF SBS 838L RH77J90407H    Refrigerators   SAMSUNG 1   161880
1202    SAMSUNG REF SBS 680L RF60J9090SL/TL Refrigerators   SAMSUNG 4   134837.3

我曾考虑将给定的输入拆分并在每一行中搜索,但产品/公司有空格,那么我该如何处理

现在我就是这么做的

import pandas as pd
df = pd.read_csv('sales_data.csv')
input = 'Refrigerators'

input_case = df[df['product_line'].str.contains(input) | df['brand'].str.contains(input)] 
TopPrice = input_case.nlargest(3, 'price')
BottomPrice = input_case.nsmallest(3, 'price')
TopSales = input_case.nlargest(3, 'sales')

如何为给定的案例编写代码


Tags: csv文本名称refdfinput产品hl