
用 Python 构建海外国风服饰出口数据统计与分析程序分欧美/东南亚市场统计中式服饰需求差异并以中立视角呈现完整分析过程。一、实际应用场景描述在《时尚产业与品牌创新》课程中出海是中国时尚品牌增长的新引擎。但海外市场呈现高度分化- 欧美市场中式旗袍、唐装集中在万圣节/派对/戏剧服装赛道客单价高但频次低新中式女装开始进入日常穿搭场景增速快。- 东南亚市场汉服文化认同感强文化同源汉服租赁摄影是高增长赛道马来西亚、新加坡的中秋/春节活动拉动节庆服饰需求。- 日韩市场更偏好极简新中式和服袖、盘扣衬衫对过度装饰接受度低。品牌面临的核心问题我的中式服饰该优先打哪个市场欧美万圣节派对装 vs 东南亚汉服租赁 vs 日韩日常新中式各市场天花板是多少二、引入痛点- 出口数据分散在多份报告海关数据、电商平台、行业白皮书缺乏统一分析框架。- 市场间需求结构差异巨大——欧美买Party Dress东南亚买Hanfu Set无法直接横向对比。- 缺乏市场优先级评分模型——该先攻哪个市场、哪条产品线全靠老板拍脑袋。⇒ 用 Python 构建海外国风服饰出口数据统计与分析系统覆盖欧美/东南亚/日韩三大市场输出需求差异矩阵与市场优先级排名。三、核心逻辑讲解1. 市场分层模型市场维度 市场规模 × 文化亲和度 × 购买力 × 竞争强度 × 渠道可达性欧美市场优势 → 市场规模大~$800M、购买力强劣势 → 文化距离远、竞品强Shein/Zaful、中国风刻板印象机会 → 新中式日常化New Chinese Style正在破圈东南亚市场优势 → 文化同源、华人基数大、汉服社群活跃劣势 → 人均消费力偏低、市场碎片化机会 → 节庆经济中秋/春节/端午 汉服摄影旅游日韩市场优势 → 审美接近、时尚产业成熟、社媒传播力强劣势 → 本土品牌强、消费者忠诚度极高机会 → 极简新中式盘扣衬衫/改良旗袍有差异化空间2. 需求差异量化框架需求差异指数DDI |市场A偏好向量 - 市场B偏好向量|₂偏好向量 [日常穿搭占比, 节庆场景占比, 派对/cosplay占比,高端定制占比, 大众成衣占比]例如欧美 [15%, 10%, 45%, 20%, 10%]东南亚 [40%, 35%, 5%, 10%, 10%]DDI √[(15-40)² (10-35)² (45-5)² (20-10)² (10-10)²] 51.0差异极大3. 市场优先级评分市场优先级 w₁×市场规模分 w₂×增长率分 w₃×文化亲和分 w₄×(100-竞争强度分) w₅×渠道可达分权重默认30% / 25% / 20% / 15% / 10%四、代码模块化overseas_market_analyzer.py#!/usr/bin/env python3# -*- coding: utf-8 -*-overseas_market_analyzer.py海外国风服饰出口数据统计与分析程序分欧美/东南亚市场统计中式服饰需求差异依赖: numpy, pandas, matplotlib安装: pip install numpy pandas matplotlibimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib import rcParamsfrom dataclasses import dataclass, fieldfrom typing import Dict, List, Tuple, Optionalfrom enum import EnumrcParams[font.sans-serif] [Noto Sans CJK SC, SimHei, Microsoft YaHei]rcParams[axes.unicode_minus] False# ──────────────────────────────────────────────# 1. 枚举与数据结构# ──────────────────────────────────────────────class Region(Enum):目标市场区域NORTH_AMERICA 北美WESTERN_EUROPE 西欧SOUTHEAST_ASIA 东南亚EAST_ASIA 东亚日韩OCEANIA 大洋洲class ProductCategory(Enum):中式服饰品类QIPAO 旗袍TANG_SUIT 唐装HANFU 汉服NEW_CHINESE_DRESS 新中式连衣裙NEW_CHINESE_SHIRT 新中式衬衫KUNG_FU_UNIFORM 武术服ACCESSORIES 配饰盘扣/云肩/发簪SHOES 中式鞋履绣花鞋/布鞋class SalesChannel(Enum):销售渠道AMAZON AmazonETSY EtsySHEIN SheinINDEPENDENT 独立站TIKTOK_SHOP TikTok ShopSHOPEE Shopee/LazadaOFFLINE 线下唐人街/文化节dataclassclass MarketDataPoint:某市场某品类的年度数据快照# 基础信息region: Regioncategory: ProductCategoryyear: int# 市场规模market_size_usd_m: float # 市场规模百万美元annual_growth_rate: float # 年增长率%avg_unit_price_usd: float # 平均单价美元# 需求结构占比总和为 100daily_wear_pct: float # 日常穿搭占比festival_pct: float # 节庆场景占比party_cosplay_pct: float # 派对/cosplay 占比luxury_custom_pct: float # 高端定制占比mass_market_pct: float # 大众成衣占比# 竞争格局competitor_count: int # 主要竞品品牌数top_brand_share: float # TOP1 品牌市占率%chinese_brand_share: float # 中国品牌整体市占率%# 渠道分布%amazon_pct: floatetsy_pct: floatshein_pct: floatindependent_pct: floattiktok_pct: floatshopee_pct: floatoffline_pct: float# 消费者画像avg_age: float # 平均消费者年龄female_pct: float # 女性消费者占比repeat_purchase_rate: float # 复购率%# 文化因素cultural_affinity: float # 文化亲和度0-100chinese_diaspora_million: float # 华人人口百万# ──────────────────────────────────────────────# 2. 市场数据库模块# ──────────────────────────────────────────────class MarketDatabase:海外国风服饰市场数据库基于海关总署数据、行业白皮书、电商平台报告综合构建staticmethoddef get_all_data() - List[MarketDataPoint]:返回所有市场×品类的完整数据data []# ─────────────── 北美 ───────────────# 旗袍 - 北美data.append(MarketDataPoint(regionRegion.NORTH_AMERICA, categoryProductCategory.QIPAO, year2024,market_size_usd_m85.0, annual_growth_rate12.5,avg_unit_price_usd68.0,daily_wear_pct10.0, festival_pct15.0, party_cosplay_pct50.0,luxury_custom_pct15.0, mass_market_pct10.0,competitor_count35, top_brand_share18.0, chinese_brand_share45.0,amazon_pct40.0, etsy_pct30.0, shein_pct10.0,independent_pct12.0, tiktok_pct3.0, shopee_pct0.0, offline_pct5.0,avg_age32.0, female_pct82.0, repeat_purchase_rate25.0,cultural_affinity35.0, chinese_diaspora_million5.5))# 新中式连衣裙 - 北美增长最快data.append(MarketDataPoint(regionRegion.NORTH_AMERICA, categoryProductCategory.NEW_CHINESE_DRESS, year2024,market_size_usd_m45.0, annual_growth_rate35.0,avg_unit_price_usd85.0,daily_wear_pct45.0, festival_pct10.0, party_cosplay_pct15.0,luxury_custom_pct20.0, mass_market_pct10.0,competitor_count18, top_brand_share25.0, chinese_brand_share60.0,amazon_pct35.0, etsy_pct20.0, shein_pct15.0,independent_pct15.0, tiktok_pct10.0, shopee_pct0.0, offline_pct5.0,avg_age28.0, female_pct88.0, repeat_purchase_rate35.0,cultural_affinity35.0, chinese_diaspora_million5.5))# 汉服 - 北美data.append(MarketDataPoint(regionRegion.NORTH_AMERICA, categoryProductCategory.HANFU, year2024,market_size_usd_m25.0, annual_growth_rate20.0,avg_unit_price_usd120.0,daily_wear_pct5.0, festival_pct25.0, party_cosplay_pct40.0,luxury_custom_pct25.0, mass_market_pct5.0,competitor_count12, top_brand_share30.0, chinese_brand_share70.0,amazon_pct20.0, etsy_pct45.0, shein_pct5.0,independent_pct20.0, tiktok_pct5.0, shopee_pct0.0, offline_pct5.0,avg_age26.0, female_pct78.0, repeat_purchase_rate40.0,cultural_affinity30.0, chinese_diaspora_million5.5))# ─────────────── 西欧 ───────────────# 旗袍 - 西欧data.append(MarketDataPoint(regionRegion.WESTERN_EUROPE, categoryProductCategory.QIPAO, year2024,market_size_usd_m65.0, annual_growth_rate8.0,avg_unit_price_usd75.0,daily_wear_pct12.0, festival_pct18.0, party_cosplay_pct45.0,luxury_custom_pct18.0, mass_market_pct7.0,competitor_count28, top_brand_share22.0, chinese_brand_share40.0,amazon_pct35.0, etsy_pct35.0, shein_pct12.0,independent_pct10.0, tiktok_pct3.0, shopee_pct0.0, offline_pct5.0,avg_age34.0, female_pct80.0, repeat_purchase_rate22.0,cultural_affinity25.0, chinese_diaspora_million3.5))# 新中式连衣裙 - 西欧data.append(MarketDataPoint(regionRegion.WESTERN_EUROPE, categoryProductCategory.NEW_CHINESE_DRESS, year2024,market_size_usd_m38.0, annual_growth_rate28.0,avg_unit_price_usd95.0,daily_wear_pct50.0, festival_pct12.0, party_cosplay_pct10.0,luxury_custom_pct18.0, mass_market_pct10.0,competitor_count15, top_brand_share28.0, chinese_brand_share55.0,amazon_pct30.0, etsy_pct25.0, shein_pct18.0,independent_pct15.0, tiktok_pct7.0, shopee_pct0.0, offline_pct5.0,avg_age30.0, female_pct85.0, repeat_purchase_rate30.0,cultural_affinity25.0, chinese_diaspora_million3.5))# ─────────────── 东南亚 ───────────────# 汉服 - 东南亚核心增长市场data.append(MarketDataPoint(regionRegion.SOUTHEAST_ASIA, categoryProductCategory.HANFU, year2024,market_size_usd_m55.0, annual_growth_rate45.0,avg_unit_price_usd45.0,daily_wear_pct40.0, festival_pct35.0, party_cosplay_pct5.0,luxury_custom_pct10.0, mass_market_pct10.0,competitor_count20, top_brand_share15.0, chinese_brand_share75.0,amazon_pct10.0, etsy_pct5.0, shein_pct20.0,independent_pct5.0, tiktok_pct15.0, shopee_pct35.0, offline_pct10.0,avg_age24.0, female_pct75.0, repeat_purchase_rate45.0,cultural_affinity85.0, chinese_diaspora_million35.0))# 旗袍 - 东南亚data.append(MarketDataPoint(regionRegion.SOUTHEAST_ASIA, categoryProductCategory.QIPAO, year2024,market_size_usd_m48.0, annual_growth_rate22.0,avg_unit_price_usd42.0,daily_wear_pct35.0, festival_pct30.0, party_cosplay_pct10.0,luxury_custom_pct12.0, mass_market_pct13.0,competitor_count25, top_brand_share20.0, chinese_brand_share65.0,amazon_pct8.0, etsy_pct3.0, shein_pct25.0,independent_pct4.0, tiktok_pct20.0, shopee_pct30.0, offline_pct15.0,avg_age26.0, female_pct80.0, repeat_purchase_rate40.0,cultural_affinity80.0, chinese_diaspora_million35.0))# 新中式衬衫 - 东南亚data.append(MarketDataPoint(regionRegion.SOUTHEAST_ASIA, categoryProductCategory.NEW_CHINESE_SHIRT, year2024,market_size_usd_m18.0, annual_growth_rate38.0,avg_unit_price_usd35.0,daily_wear_pct55.0, festival_pct20.0, party_cosplay_pct3.0,luxury_custom_pct5.0, mass_market_pct17.0,competitor_count10, top_brand_share30.0, chinese_brand_share80.0,amazon_pct5.0, etsy_pct2.0, shein_pct30.0,independent_pct3.0, tiktok_pct25.0, shopee_pct25.0, offline_pct10.0,avg_age23.0, female_pct65.0, repeat_purchase_rate50.0,cultural_affinity85.0, chinese_diaspora_million35.0))# ─────────────── 东亚日韩───────────────# 新中式衬衫 - 日韩data.append(MarketDataPoint(regionRegion.EAST_ASIA, categoryProductCategory.NEW_CHINESE_SHIRT, year2024,market_size_usd_m32.0, annual_growth_rate18.0,avg_unit_price_usd55.0,daily_wear_pct60.0, festival_pct10.0, party_cosplay_pct5.0,luxury_custom_pct10.0, mass_market_pct15.0,competitor_count22, top_brand_share35.0, chinese_brand_share40.0,amazon_pct25.0, etsy_pct5.0, shein_pct20.0,independent_pct20.0, tiktok_pct15.0, shopee_pct5.0, offline_pct10.0,avg_age27.0, female_pct70.0, repeat_purchase_rate35.0,cultural_affinity55.0, chinese_diaspora_million2.5))# 配饰 - 日韩data.append(MarketDataPoint(regionRegion.EAST_ASIA, categoryProductCategory.ACCESSORIES, year2024,market_size_usd_m22.0, annual_growth_rate25.0,avg_unit_price_usd18.0,daily_wear_pct70.0, festival_pct8.0, party_cosplay_pct2.0,luxury_custom_pct5.0, mass_market_pct15.0,competitor_count15, top_brand_share40.0, chinese_brand_share50.0,amazon_pct30.0, etsy_pct10.0, shein_pct15.0,independent_pct15.0, tiktok_pct20.0, shopee_pct3.0, offline_pct7.0,avg_age25.0, female_pct82.0, repeat_purchase_rate55.0,cultural_affinity55.0, chinese_diaspora_million2.5))return data# ──────────────────────────────────────────────# 3. 需求差异分析引擎模块# ──────────────────────────────────────────────class DemandDifferenceAnalyzer:需求差异分析引擎量化不同市场/品类之间的需求结构差异def __init__(self, data: List[MarketDataPoint]):self.data dataself.df self._to_dataframe()def _to_dataframe(self) - pd.DataFrame:转为 DataFramerows []for d in self.data:rows.append({region: d.region.value,category: d.category.value,market_size_m: d.market_size_usd_m,growth_rate: d.annual_growth_rate,avg_price: d.avg_unit_price_usd,daily_wear: d.daily_wear_pct,festival: d.festival_pct,party_cosplay: d.party_cosplay_pct,luxury_custom: d.luxury_custom_pct,mass_market: d.mass_market_pct,competitor_count: d.competitor_count,top_brand_share: d.top_brand_share,chinese_brand_share: d.chinese_brand_share,amazon_pct: d.amazon_pct,etsy_pct: d.etsy_pct,shein_pct: d.shein_pct,independent_pct: d.independent_pct,tiktok_pct: d.tiktok_pct,shopee_pct: d.shopee_pct,offline_pct: d.offline_pct,avg_age: d.avg_age,female_pct: d.female_pct,repeat_rate: d.repeat_purchase_rate,cultural_affinity: d.cultural_affinity,diaspora_million: d.chinese_diaspora_million,})return pd.DataFrame(rows)def calc_demand_difference(self,region_a: str,category_a: str,region_b: str,category_b: str) - Dict:计算两个市场×品类的需求差异指数DDI使用欧几里得距离mask_a (self.df[region] region_a) (self.df[category] category_a)mask_b (self.df[region] region_b) (self.df[category] category_b)if mask_a.sum() 0 or mask_b.sum() 0:return {error: 未找到匹配数据}row_a self.df[mask_a].iloc[0]row_b self.df[mask_b].iloc[0]# 需求结构向量demand_dims [daily_wear, festival, party_cosplay, luxury_custom, mass_market]vec_a np.array([row_a[d] for d in demand_dims])vec_b np.array([row_b[d] for d in demand_dims])# 欧氏距离ddi np.linalg.norm(vec_a - vec_b)# 余弦相似度dot np.dot(vec_a, vec_b)norm_a np.linalg.norm(vec_a)norm_b np.linalg.norm(vec_b)cosine_sim dot / (norm_a * norm_b) if norm_a 0 and norm_b 0 else 0return {region_a: region_a, category_a: category_a,region_b: region_b, category_b: category_b,ddi_score: round(ddi, 2),cosine_similarity: round(cosine_sim, 4),vector_a: dict(zip(demand_dims, vec_a.tolist())),vector_b: dict(zip(demand_dims, vec_b.tolist())),max_diff_dim: max(demand_dims, keylambda d: abs(row_a[d] - row_b[d])),max_diff_value: round(max(abs(row_a[d] - row_b[d]) for d in demand_dims), 1),}def compare_regions(self,category: str,regions: List[str] None) - pd.DataFrame:对比同一品类在不同市场的需求结构if regions is None:regions list(self.df[region].unique())rows []for region in regions:mask (self.df[region] region) (self.df[category] category)if mask.sum() 0:continuerow self.df[mask].iloc[0]rows.append({市场: region,品类: category,市场规模(百万$): row[market_size_m],增长率(%): row[growth_rate],均价($): row[avg_price],日常穿搭%: row[daily_wear],节庆%: row[festival],派对/Cosplay%: row[party_cosplay],高端定制%: row[luxury_custom],大众成衣%: row[mass_market],竞品数: row[competitor_count],TOP1市占率%: row[top_brand_share],中国品牌市占%: row[chinese_brand_share],复购率%: row[repeat_rate],文化亲和度: row[cultural_affinity],})return pd.DataFrame(rows)# ──────────────────────────────────────────────# 4. 市场优先级评分模块# ──────────────────────────────────────────────class MarketPriorityScorer:市场优先级评分模型综合市场规模、增长率、文化亲和度、竞争强度、渠道可达性def __init__(self,w_market: float 0.30,w_growth: float 0.25,w_culture: float 0.20,w_competition: float 0.15,w_channel: float 0.10):权重配置w_market: 市场规模权重w_growth: 增长率权重w_culture: 文化亲和度权重w_competition: 竞争强度权重反向w_channel: 渠道可达性权重self.weights {market: w_market,growth: w_growth,culture: w_culture,competition: w_competition,channel: w_channel,}def score_markets(self,data: List[MarketDataPoint]) - pd.DataFrame:为所有市场×品类组合打分# 先计算各维度的最大值用于归一化max_market max(d.market_size_usd_m for d in data)max_growth max(d.annual_growth_rate for d in data)max_culture 100.0 # 文化亲和度最大 100max_channel 100.0 # 渠道可达性最大 100# 渠道可达性 电商渠道占比亚马逊EtsySheinTikTokShopeedef channel_score(d):return d.amazon_pct d.etsy_pct d.shein_pct d.tiktok_pct d.shopee_pctrows []for d in data:# 归一化各维度0-100market_s (d.market_size_usd_m / max_market) * 100growth_s (d.annual_growth_rate / max_growth) * 100culture_s d.cultural_affinity # 已经是 0-100competition_s 100 - d.top_brand_share # 竞品越强得分越低channel_s channel_score(d)# 综合得分total (market_s * self.weights[market] growth_s * self.weights[growth] culture_s * self.weights[culture] competition_s * self.weights[competition] min(channel_s, 100) * self.weights[channel])# 评级if total 70:rating 优先进入elif total 55:rating ⭐ 重点关注elif total 40:rating 观望评估else:rating ⚠️ 暂不推荐rows.append({市场: d.region.value,品类: d.category.value,市场规模(百万$): d.market_size_usd_m,增长率(%): d.annual_growth_rate,均价($): d.avg_unit_price_usd,市场规模分: round(market_s, 1),增长率分: round(growth_s, 1),文化亲和分: round(culture_s, 1),竞争空间分: round(competition_s, 1),渠道可达分: round(min(channel_s, 100), 1),综合得分: round(total, 1),评级: rating,文化亲和度: d.cultural_affinity,中国品牌市占%: d.chinese_brand_share,复购率%: d.repeat_purchase_rate,})df pd.DataFrame(rows)df df.sort_values(综合得分, ascendingFalse)return df# ──────────────────────────────────────────────# 5. 可视化仪表盘模块# ──────────────────────────────────────────────class Dashboard:海外国风服饰市场分析可视化仪表盘REGION_COLORS {北美: #E74C3C,西欧: #3498DB,东南亚: #2ECC71,东亚日韩: #F39C12,大洋洲: #9B59B6,}RATING_COLORS { 优先进入: #E74C3C,⭐ 重点关注: 利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛