File size: 706 Bytes
019d08d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import pandas as pd

def generate_insights(df: pd.DataFrame):
    return {
        "total_products": len(df),
        "categories": df["category"].nunique(),
        "brands": df["brand"].nunique(),
        "avg_price": df["price"].mean(),
        "avg_rating": df["rating"].mean(),
    }

def semantic_search(query: str, df: pd.DataFrame):
    q = query.lower()
    mask = (
        df["title"].str.contains(q, case=False, na=False) |
        df["description"].str.contains(q, case=False, na=False)
    )
    return df[mask].head(100)

def recommend_by_category(df: pd.DataFrame, category: str):
    subset = df[df["category"] == category]
    return subset.sort_values("rating", ascending=False).head(10)