oumi12/fastpai
0
1from typing import List2from enum import Enum3 4import pandas as pd5from fastapi import FastAPI, Query6from huggingface_hub import hf_hub_download7 8app = FastAPI()9 10# Chargement depuis HuggingFace Dataset11path = hf_hub_download(12 repo_id="oumi12/dataset_fatsapi",13 filename="ibm_hr_attrition.xlsx",14 repo_type="dataset"15)16 17df = pd.read_excel(path)18 19 20@app.get("/preview")21def preview(n: int = 5):22 return df.head(n).to_dict(orient="records")23 24 25@app.get("/unique-values")26def unique_values(column: str):27 return df[column].unique().tolist()28 29 30class Metric(str, Enum):31 mean = "mean"32 sum = "sum"33 min = "min"34 max = "max"35 36 37@app.get("/groupby")38def groupby(group_col: str, value_col: str, metric: Metric = Metric.mean):39 result = df.groupby(group_col)[value_col].agg(metric.value).reset_index()40 return result.to_dict(orient="records")41 42 43@app.get("/filter-by-v2")44def filter_by(column: str, values: List[str] = Query(...), limit: int = 50):45 filtered = df[df[column].isin(values)]46 return filtered.head(limit).to_dict(orient="records")47 