小红书服饰数据分析实战:从字段设计到选品决策的完整流程 简介这是一份面向数据分析初学者、计算机专业学生及毕业设计实践者的实战案例资源围绕小红书服饰行业展开完整的数据探索。项目基于2022年4月21日至5月20日的平台数据覆盖笔记趋势、内容关键词、品类占比、年龄与地域分布、评论热词等分析维度帮助读者理解从数据清洗到可视化呈现的全流程。资源包共9个文件包含6个xlsx数据表、2个ipynb分析笔记和1个html可视化页面压缩包约636KB结构紧凑便于按模块查阅。代码部分使用Pandas处理数据Matplotlib与Seaborn完成图表绘制并涉及自然语言处理提取评论关键词可作为数据分析与人工智能课程的实践素材。已有162人学习下载适合需要完整分析框架、可复用代码模板与真实业务数据集的读者参考借鉴。1. 小红书服饰行业数据探索从零到一的分析框架小红书服饰行业的数据分析核心要解决的是「内容种草如何转化为生意决策」这个问题。很多做服饰电商的团队手里攒了几万条笔记数据却只停留在看点赞数排名的阶段这其实浪费了数据里最有价值的部分——用户评论里的真实需求信号、不同价格带的互动效率差异、以及内容形式与转化之间的隐藏关联。我这次要拆解的就是一套完整的服饰行业数据分析流程从数据采集字段设计、清洗入库、多维指标构建到最终输出可指导选品和内容策略的结论。适合有基础 Python 能力、想系统化分析内容平台数据的运营和开发同学。整套流程用到的工具就是 pandas、matplotlib 和 jieba 这几个常见库不需要复杂环境本地跑得动。2. 数据采集与字段设计哪些维度真正影响分析结论2.1 服饰类笔记的核心字段拆解做服饰行业分析采集字段的设计直接决定了后面能挖多深。我一般会把字段分成四层内容层、互动层、商品层、时间层。内容层包括笔记标题、正文、话题标签、图片数量、视频时长互动层包括点赞、收藏、评论、分享、关注转化商品层包括是否挂车、商品价格带、品类标签时间层包括发布时间、发布星期、发布时段。很多新手只抓点赞和标题就开跑结果做到一半发现想分析「挂车笔记和非挂车笔记的互动差异」时没有字段支撑只能重新采。这个返工成本很高所以字段设计阶段宁可多留冗余。# 服饰笔记采集字段定义以常见数据结构为例 fields { note_id: str, # 笔记唯一标识 title: str, # 标题文本 content: str, # 正文文本 tags: list, # 话题标签列表 img_count: int, # 图片数量 video_duration: float, # 视频时长秒非视频为0 likes: int, # 点赞数 collects: int, # 收藏数 comments: int, # 评论数 shares: int, # 分享数 is_product: bool, # 是否挂商品 price_range: str, # 价格带0-100/100-300/300-500/500 category: str, # 品类上装/下装/裙装/外套/配饰 publish_time: datetime, # 发布时间 publish_hour: int, # 发布小时0-23 publish_weekday: int, # 发布星期0-6 }这段字段定义里price_range和category是最容易被忽略但分析价值最高的两个字段。价格带决定了你后续能不能做「不同价位段的互动效率对比」品类决定了能不能拆出「裙装和外套的内容策略差异」。publish_hour和publish_weekday看起来简单但做发布时间优化时没有这两个字段就只能靠猜。2.2 采集频率与样本量控制服饰行业有明显的季节性春夏和秋冬的爆款逻辑完全不同。如果只采一个时间截面的数据结论会严重偏斜。我的做法是至少覆盖连续 4 周的数据每周采一次这样既能捕捉短期波动又能看出趋势。样本量方面单个品类建议不少于 500 条笔记全品类合计不少于 3000 条。低于这个量级统计显著性不够算出来的互动率均值波动会很大。如果采集成本高可以优先保证核心品类比如裙装和上装的样本量长尾品类适当降低要求。注意采集时一定要记录采集时间戳。不同时间点采集的数据互动数据会自然增长混在一起分析会导致「老笔记互动虚高」的偏差。3. 数据清洗与特征工程把原始数据变成可分析的指标3.1 缺失值与异常值处理原始数据里最常见的三类问题互动字段为空、价格带缺失、发布时间格式不统一。互动字段为空的情况如果占比低于 5%直接按 0 填充如果占比超过 20%要考虑是不是采集环节出了问题不能盲目填 0。异常值方面点赞数超过均值 10 倍以上的笔记我一般会单独标记而不是直接删除。这些极值往往就是爆款样本删掉反而丢失了最有价值的信息。处理方式是新增一列is_outlier做标记分析时可以选择性排除或单独研究。import pandas as pd import numpy as np df pd.read_csv(fashion_notes.csv) # 互动字段缺失处理 interact_cols [likes, collects, comments, shares] for col in interact_cols: missing_rate df[col].isna().mean() if missing_rate 0.05: df[col] df[col].fillna(0) else: print(f警告{col} 缺失率 {missing_rate:.1%}需检查采集逻辑) # 异常值标记以点赞为例 like_mean df[likes].mean() like_std df[likes].std() df[is_outlier] df[likes] (like_mean 3 * like_std) # 价格带缺失用中位数所在区间填充 df[price_range] df[price_range].fillna(100-300)这段代码的逻辑是先判断缺失率再决定填充策略而不是无脑 fillna。is_outlier用 3 倍标准差做阈值这是比较保守的做法实际业务中也可以改用四分位距IQR方法。价格带填充用众数区间比用均值更合理因为价格带是分类变量。3.2 互动率指标构建原始互动数不能直接比较因为不同笔记的曝光量不同。必须构建比率指标才能做公平对比。我常用的三个核心指标指标名计算公式业务含义互动率(点赞收藏评论分享)/曝光量内容整体吸引力收藏赞比收藏/点赞内容实用价值越高越偏工具型评论赞比评论/点赞内容讨论价值越高越偏话题型曝光量如果拿不到可以用粉丝数做近似分母但要在分析结论里注明这个替代关系。收藏赞比这个指标在服饰行业特别有用——收藏高说明用户在「做购买决策前的信息储备」这类笔记的转化潜力通常比纯点赞高的笔记更大。# 构建互动率指标 df[total_interact] df[likes] df[collects] df[comments] df[shares] df[collect_like_ratio] df[collects] / df[likes].replace(0, np.nan) df[comment_like_ratio] df[comments] / df[likes].replace(0, np.nan) # 按品类看收藏赞比中位数 category_ratio df.groupby(category)[collect_like_ratio].median().sort_values(ascendingFalse) print(category_ratio)replace(0, np.nan)这一步很关键避免除零错误。用中位数而不是均值来看品类差异是因为比率指标的分布通常右偏均值容易被极值拉高。4. 多维分析实战价格带、品类与内容形式的交叉洞察4.1 价格带与互动效率的关系服饰行业一个常见的直觉是「便宜的东西互动高」但实际数据往往不是这样。我跑过的一组数据显示100-300 元价格带的笔记互动率中位数最高0-100 元反而偏低。原因不难理解低价服饰的内容同质化严重用户审美疲劳而 100-300 元区间正好是「轻决策」和「品质感」的平衡点内容更容易做出差异化。# 价格带互动率对比 price_analysis df.groupby(price_range).agg( avg_interact_rate(total_interact, median), note_count(note_id, count), avg_collect_ratio(collect_like_ratio, median) ).sort_values(avg_interact_rate, ascendingFalse) print(price_analysis)这段聚合代码用了median而不是mean原因前面说过互动数据分布右偏。note_count用来判断样本量是否足够如果某个价格带只有几十条笔记结论可信度就要打折扣。4.2 图文 vs 视频的内容形式差异服饰类内容里图文和视频的互动逻辑完全不同。图文笔记的收藏赞比普遍更高因为用户会收藏起来「以后照着搭配」视频笔记的评论赞比更高因为视频更容易引发「求链接」「求身高体重参考」这类互动。分析这个维度时不能只看总量要分品类看。裙装类图文笔记的收藏赞比明显高于视频而外套类视频笔记的互动率反而更高——因为外套的版型、面料质感通过视频展示更直观。# 内容形式与品类的交叉分析 df[is_video] df[video_duration] 0 cross_analysis df.pivot_table( valuescollect_like_ratio, indexcategory, columnsis_video, aggfuncmedian ) print(cross_analysis)pivot_table的aggfunc同样用median。这个交叉表能直接看出哪些品类适合做图文、哪些适合做视频对内容策略的指导非常直接。4.3 发布时间段的互动差异发布时间对互动的影响在服饰行业比较明显。我的经验是工作日晚 7-10 点、周末上午 10-12 点是两个高峰段。但这不是绝对的要结合自己的账号粉丝活跃数据来校准。# 按发布小时看互动率 hour_analysis df.groupby(publish_hour)[total_interact].median() hour_analysis.plot(kindbar, figsize(12, 4), title各时段互动率中位数)这个分析要注意排除样本量过少的时段。如果某个小时只有几条笔记算出来的中位数没有参考意义。建议在分析前先过滤掉样本量少于 30 的时段。5. 避坑与常见问题数据探索中容易翻车的五个点现象互动率算出来超过 100%。原因曝光量字段单位不一致有的按千次曝光记录有的按人次记录。解决统一单位后再计算或者在结论里明确标注分母口径。现象某个品类互动率异常高但实际业务表现一般。原因该品类样本量太少被几条爆款拉高了均值。解决设置最小样本量阈值建议 100 条低于阈值的品类不单独出结论。现象清洗后数据量骤减一半。原因去重逻辑过于激进把不同时间采集的同一笔记当成重复数据删掉了。解决去重时以 note_id 为准保留最新采集时间的那条记录而不是简单 drop_duplicates。现象分词结果里全是无意义的高频词。原因没有加载停用词表也没有过滤服饰行业的通用词如「穿搭」「分享」「日常」。解决自定义停用词表把行业通用词加进去只保留有区分度的词。现象不同批次采集的数据合并后指标对不上。原因字段类型不一致比如一批数据里 likes 是字符串另一批是整数。解决合并前统一做 dtype 转换用pd.to_numeric(errorscoerce)强制转换并检查转换失败的行。6. 从分析到决策把数据结论落成选品和内容策略分析做完不是终点能落成决策才有价值。我一般会把结论整理成三张表品类机会表、价格带策略表、内容形式建议表。品类机会表按「互动率中位数 × 样本量」排序找出既有热度又有讨论空间的品类价格带策略表标注每个价格带的收藏赞比和评论赞比决定主推哪个价位段内容形式建议表按品类给出图文/视频的优先级。# 输出品类机会表 opportunity df.groupby(category).agg( median_interact(total_interact, median), note_count(note_id, count), collect_ratio(collect_like_ratio, median), comment_ratio(comment_like_ratio, median) ).query(note_count 100).sort_values(median_interact, ascendingFalse) opportunity.to_csv(category_opportunity.csv, encodingutf-8-sig)query(note_count 100)这一步就是前面说的样本量过滤保证输出的每个品类都有统计意义。encodingutf-8-sig是为了 Excel 打开不乱码这个细节看起来小但交付给运营同学时能省很多沟通成本。还有一个进阶技巧把评论数据用 jieba 做分词后按品类统计高频需求词。比如裙装品类里「显瘦」「遮胯」「小个子」出现频率高那选品和内容脚本就应该围绕这些词做文章。这个分析不需要复杂模型一个词频统计加人工筛选就能出很有价值的结论。import jieba from collections import Counter stop_words {穿搭, 分享, 日常, 搭配, 好看, 喜欢} comments df[df[category] 裙装][content].dropna().tolist() words [] for text in comments: words.extend([w for w in jieba.cut(text) if len(w) 1 and w not in stop_words]) top_words Counter(words).most_common(30) print(top_words)停用词表一定要自定义通用停用词表不够用。len(w) 1过滤掉单字减少噪音。这个分析跑完后我一般会人工再过一遍 top 词把明显不相关的词补进停用词表迭代两三轮就能得到比较干净的需求词列表。我自己做这类分析最大的教训是不要一上来就追求复杂的模型和可视化先把字段设计对、把清洗做扎实、把三五个核心指标算准结论的可靠性远比花哨的图表重要。每次分析前花十分钟检查字段完整性和样本量比后面花两小时排查异常值划算得多。希望帮到你。本文还有配套的精品资源点击获取