Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| VALID_COLORS = [ | |
| "白色", "透明", "黑色", "棕色", "紅色", "橘色", | |
| "皮膚色", "黃色", "綠色", "藍色", "紫色", "粉紅色", "灰色" | |
| ] | |
| VALID_SHAPES = ["圓形", "橢圓形", "其他"] | |
| def generate_color_shape_dicts(df: pd.DataFrame, start_index=1, end_index=10000): | |
| color_dict = {color: [] for color in VALID_COLORS} | |
| shape_dict = {shape: [] for shape in VALID_SHAPES} | |
| invalid_colors = set() | |
| df_range = df[(df["用量排序"] >= start_index) & (df["用量排序"] <= end_index)] | |
| for _, row in df_range.iterrows(): | |
| usage_order = row.get("用量排序") | |
| if pd.isna(usage_order): | |
| continue | |
| usage_order = int(usage_order) | |
| # === 外型分類 === | |
| shape = str(row.get("形狀", "")).strip() | |
| if shape in shape_dict: | |
| shape_dict[shape].append(usage_order) | |
| else: | |
| shape_dict["其他"].append(usage_order) | |
| # === 顏色分類(支援多色)=== | |
| raw_colors = str(row.get("顏色", "")).strip() | |
| for part in raw_colors.split("|"): | |
| color = part.strip() | |
| if color in color_dict: | |
| color_dict[color].append(usage_order) | |
| elif color: | |
| invalid_colors.add(color) | |
| return color_dict, shape_dict, sorted(invalid_colors) | |