Spaces:
Paused
Paused
| from pathlib import Path | |
| import pandas as pd | |
| RAW_DIR = Path(__file__).parent.parent / "data" / "raw" / "skincare_products" | |
| CLEAN_DIR = Path(__file__).parent / "data" | |
| def add_prices(): | |
| # --- Dermstore: join on title to recover price + currency --- | |
| clean = pd.read_csv(CLEAN_DIR / "dermstore_skincare_cleaned.csv") | |
| if "price" not in clean.columns: | |
| raw = pd.read_csv(RAW_DIR / "dermstore_data.csv", usecols=["title", "price", "currency"]) | |
| raw["title"] = raw["title"].str.strip() | |
| raw = raw.drop_duplicates("title") | |
| clean["title"] = clean["title"].str.strip() | |
| clean = clean.merge(raw, on="title", how="left") | |
| clean.to_csv(CLEAN_DIR / "dermstore_skincare_cleaned.csv", index=False) | |
| print(f"Dermstore: {clean['price'].notna().sum()}/{len(clean)} produits avec prix") | |
| else: | |
| print("Dermstore: colonne price déjà présente, skip") | |
| # --- LookFantastic: price existe mais format '£5.20', normaliser --- | |
| clean = pd.read_csv(CLEAN_DIR / "lookfantastic_skincare_cleaned.csv") | |
| if "currency" not in clean.columns: | |
| clean["price"] = ( | |
| clean["price"] | |
| .astype(str) | |
| .str.replace("£", "", regex=False) | |
| .str.strip() | |
| ) | |
| clean["price"] = pd.to_numeric(clean["price"], errors="coerce") | |
| clean["currency"] = "GBP" | |
| clean.to_csv(CLEAN_DIR / "lookfantastic_skincare_cleaned.csv", index=False) | |
| print(f"LookFantastic: {clean['price'].notna().sum()}/{len(clean)} produits avec prix") | |
| else: | |
| print("LookFantastic: colonne currency déjà présente, skip") | |
| # --- Amazon: prix en INR, non fiables → null --- | |
| clean = pd.read_csv(CLEAN_DIR / "amazon_skincare_cleaned.csv") | |
| if "price" not in clean.columns: | |
| clean["price"] = None | |
| clean["currency"] = None | |
| clean.to_csv(CLEAN_DIR / "amazon_skincare_cleaned.csv", index=False) | |
| print(f"Amazon: {len(clean)} produits sans prix (INR source, non exploitable)") | |
| else: | |
| print("Amazon: colonne price déjà présente, skip") | |
| if __name__ == "__main__": | |
| add_prices() | |