1.7电商数据分析:数据类型的底层基础与处理方法

张开发
2026/4/16 14:32:39 15 分钟阅读

分享文章

1.7电商数据分析:数据类型的底层基础与处理方法
7.电商数据分析数据类型的底层基础与处理方法开篇为什么数据类型是电商数据分析的底层基础我入行第一年遇到过一件很尴尬的事。运营同事发给我一份“用户评价”Excel文件让我统计一下“好评率”。我打开一看评价内容全是中文长文本我直接用了Excel的COUNT函数结果完全不对——因为每条评价不是数字没法直接统计。后来我才知道这是“非结构化数据”需要用文本处理的方法而不是用数字统计的方法。在电商数据分析里数据不是“一张规整的表格”那么简单。你会遇到结构化数据订单表、用户表行是记录列是字段规规整整半结构化数据JSON格式的埋点日志、API返回的嵌套数据非结构化数据用户评价文本、商品主图、客服聊天记录搞不清这三种数据类型的区别和处理方法你就会像我当年一样拿着错误的方法去处理错误的数据得出错误的结论。这一章帮你搞清楚这三种数据长什么样、在电商场景里出现在哪里、该用什么工具处理、有哪些坑要避开。学习前准备下载1份电商订单数据Excel格式、1份用户评价数据文本格式、1份商品详情页数据可包含图片用于后续对照理解。电商场景下数据类型分类的核心逻辑分类标准数据的“规整程度”数据类型的分类型本质上是按照数据的结构化程度来划分的结构化数据有固定的行和列每列的数据类型一致可以用二维表存储半结构化数据有一定结构如键值对但不同记录的长度和字段可能不一致非结构化数据没有固定结构无法直接放入二维表掌握这个知识点对后续工作的核心作用决定处理方法结构化数据用SQL/Excel半结构化数据用JSON解析工具非结构化数据用NLP或图像识别决定工具选择MySQL适合存结构化数据MongoDB适合存半结构化数据专用引擎适合处理非结构化数据避免方法错误不会把文本当数字去求平均值也不会把图片当成表格去筛选我的踩坑经历我曾经试图用Excel处理半结构化的JSON日志手动拆分了几百行效率极低。后来学了Python的json库几行代码就解析完。从那以后我明白了用对工具比用功更重要而选对工具的前提是认清数据类型。结构化数据详解核心定义结构化数据是指格式规整、可以用关系型数据库二维表存储的数据。每行是一条记录每列是一个属性列的数据类型一致如数字、文本、日期。电商场景下的常见数据类型数据类型电商示例特征订单数据订单号、用户ID、金额、下单时间每行一笔订单列固定用户画像用户ID、性别、年龄、省份每行一个用户商品信息商品ID、标题、价格、库存每行一个商品流量数据用户ID、访问页面、停留时长每行一次访问记录特征与处理方法特征固定列数、固定数据类型、可索引、可关联如订单表通过用户ID关联用户表处理方法存储MySQL、PostgreSQL、Hive查询SQLSELECT、JOIN、GROUP BY分析Excel数据透视表、Python Pandas清洗重点缺失值填充、重复值删除、数据类型转换如文本日期转日期类型工具选择数据量级推荐工具原因小万行以内Excel / WPS快速上手透视表和函数够用中百万行以内MySQL / SQLiteSQL查询高效支持索引大千万行以上Hive / Spark SQL分布式计算处理海量数据电商场景实操案例场景订单表orders结构化需要计算每个店铺的GMV。SELECT shop_name, SUM(amount) AS gmv FROM orders WHERE order_status 已支付 GROUP BY shop_name;处理步骤识别数据格式订单表是典型的二维表属于结构化数据选择工具百万行以内用MySQL用SQL聚合清洗过滤订单状态只算已支付确保金额列是数字类型输出店铺GMV排行避坑提醒结构化数据最容易忽略的是数据类型一致性。比如金额列混入了文本“¥299”SQL的SUM会报错或跳过。清洗时一定要先统一类型。不要在Excel里打开百万行的结构化数据会卡死。应该先用SQL聚合再导出小结果集。半结构化数据详解核心定义半结构化数据是介于结构化和非结构化之间的数据它有标签和键值对但不同记录的字段数量和类型可能不一致。常见的格式有JSON、XML、YAML。电商场景下的常见数据类型数据类型电商示例特征埋点日志用户行为JSON{user_id:123,action:click,item_id:456,timestamp:...}每条记录字段可能不同API返回数据淘宝开放平台返回的订单详情JSON嵌套商品列表多层嵌套字段动态配置数据店铺装修配置XML、优惠券规则JSON结构灵活但有一定规范商品属性不同类目商品的属性不同如“手机”有内存字段“衣服”有尺码字段属性列表不固定特征与处理方法特征自描述字段名和值一起存储、可嵌套对象里有对象、结构灵活处理方法存储MongoDB、Elasticsearch文档型数据库解析Python的json模块、pandas.json_normalize()、SQL的JSON函数MySQL 5.7、PostgreSQL分析将半结构化数据“拍平”成结构化表后再分析工具选择工具适用场景Python Pandas少量JSON文件需要清洗后分析MongoDB大量半结构化数据需要灵活查询MySQL 8.0已有MySQL环境偶尔处理JSON字段大数据平台Spark海量JSON日志分析电商场景实操案例场景用户行为日志以JSON格式存储每行一个JSON需要统计每个商品的点击量。import pandas as pd import json # 读取JSON Lines文件每行一个JSON data [] with open(user_behavior.json, r) as f: for line in f: data.append(json.loads(line)) # 转换为DataFrame df pd.json_normalize(data) # 筛选点击行为统计点击量 clicks df[df[action] click].groupby(item_id).size() print(clicks)处理步骤识别格式JSON Lines每行是一个独立的JSON对象选择工具Python Pandas解析用json.loads读取每行或用pd.read_json直接读如果文件格式标准清洗过滤出actionclick的记录聚合按商品ID分组计数避坑提醒JSON数据可能多层嵌套直接用pd.read_json可能得到嵌套列如user.id。可以用json_normalize或手动展开。半结构化数据不适合用Excel处理。Excel对JSON支持很差建议用Python。解析大型JSON文件时不要一次性用json.load()加载整个文件会内存爆炸。应该逐行读取JSON Lines格式或用流式解析器。我的踩坑经历有一次分析App埋点日志JSON文件有5GB我直接用json.load()电脑内存爆了。后来改用逐行读取才顺利处理完。教训处理大数据时要考虑内存不要一次性加载。非结构化数据详解核心定义非结构化数据是没有固定结构、无法用二维表表示的数据。常见形式文本、图片、音频、视频。电商场景下的常见数据类型数据类型电商示例特征文本数据用户评价、客服聊天记录、商品标题和详情描述长度不一无固定字段图片数据商品主图、详情页图片、用户晒图像素矩阵无结构化属性视频数据商品介绍视频、直播回放时间序列帧音频数据客服通话录音声波数据特征与处理方法特征没有预定义的数据模型不适合直接存入关系型数据库处理方法存储对象存储OSS、S3、文件系统、NoSQL数据库如MongoDB的GridFS分析文本分析NLP、图像识别CV、语音转文字ASR元数据抽取从非结构化数据中提取结构化元数据如图片的拍摄时间、尺寸工具选择任务工具说明文本分类/情感分析PythonNLTK、snownlp、Transformers判断用户评价是好评还是差评关键词提取Pythonjieba、TF-IDF从评价中提取高频词图像识别云服务阿里云图像识别、百度AI或PythonOpenCV、PaddleOCR识别商品图片中的标签、违规内容语音转文字云服务阿里云语音识别、腾讯云ASR客服录音转文字后分析电商场景实操案例场景分析用户评价文本判断好评率和提取关键词。import pandas as pd import jieba from snownlp import SnowNLP # 读取评价数据 df pd.read_csv(user_reviews.csv) # 用SnowNLP做情感分析返回0-1之间0.5为正面 df[sentiment_score] df[review_text].apply(lambda x: SnowNLP(x).sentiments) df[sentiment] df[sentiment_score].apply(lambda x: 正面 if x 0.5 else 负面) # 统计好评率 positive_rate (df[sentiment] 正面).mean() print(f好评率{positive_rate:.2%}) # 提取关键词以正面评价为例 positive_texts .join(df[df[sentiment] 正面][review_text]) words jieba.lcut(positive_texts) word_freq pd.Series(words).value_counts().head(10) print(正面评价高频词, word_freq)处理步骤识别数据类型用户评价是文本属于非结构化数据选择方法情感分析判断正负面 分词提取关键词执行用SnowNLP和jieba库处理输出好评率和高频词供运营优化商品避坑提醒不要试图把非结构化数据强行塞进SQL表。比如把整段用户评价存为一个文本字段是可以的但不要试图在SQL里对文本做复杂分析如情感计算应该用专业NLP工具。非结构化数据分析需要领域知识。比如“面料很舒服”在服装类目是正面词在电子产品类目可能无关。要结合业务理解调整模型。成本问题图像识别、语音转文字等API通常按次收费大规模处理前要评估预算。 电商数据合规提示处理用户评价文本时如果涉及用户ID、昵称等在分析前应脱敏如用随机ID代替。不要将原始评价文本随意导出或分享。对于客服录音等涉及用户隐私的非结构化数据必须严格遵守公司数据安全规定未经用户同意不得用于分析。综合实操案例电商店铺全渠道数据分类梳理案例背景某天猫店铺在日常运营中收集了以下数据需要你梳理数据类型并为每种数据匹配合适的处理方法和工具。数据清单订单明细表orders.csv订单号、用户ID、金额、下单时间、订单状态用户行为日志behavior.json每行一个JSON记录用户点击、加购、收藏等行为用户评价reviews.txt每行一条评价文本商品主图product_images/文件夹JPG图片文件名对应商品ID分步操作步骤1逐项判断数据类型数据数据类型判断依据订单明细表结构化规整的二维表行列固定可用SQL用户行为日志半结构化JSON格式有嵌套字段但有一定结构用户评价非结构化文本纯文本无固定格式商品主图非结构化图片图像数据无法直接放入表格步骤2匹配合适的处理方法和工具数据处理方法推荐工具分析目标示例订单明细表SQL聚合、Excel透视MySQL / Excel计算各店铺GMV用户行为日志JSON解析展开为表Python (pandas)统计各商品点击量用户评价情感分析、关键词提取Python (SnowNLP, jieba)计算好评率提取高频问题商品主图图像识别可选阿里云图像识别检测主图是否违规如牛皮癣步骤3编写处理脚本框架以用户评价为例# 伪代码仅示意 import pandas as pd from snownlp import SnowNLP # 读取评价文本 with open(reviews.txt, r, encodingutf-8) as f: reviews f.readlines() # 情感分析 sentiments [SnowNLP(text).sentiments for text in reviews] df_sentiment pd.DataFrame({text: reviews, score: sentiments}) df_sentiment[sentiment] df_sentiment[score].apply(lambda x: positive if x 0.5 else negative) # 输出统计 print(df_sentiment[sentiment].value_counts(normalizeTrue))步骤4产出数据分类对照表数据名称数据类型存储方式分析工具输出成果订单明细结构化MySQLSQL每日GMV报表行为日志半结构化MongoDB / S3Python用户行为漏斗用户评价非结构化文件系统Python NLP好评率、词云商品主图非结构化OSS云API违规检测报告案例小结通过这个练习你应该能快速识别电商日常工作中遇到的不同数据类型并知道该用什么工具和方法处理。核心原则结构化数据用SQL/Excel半结构化用JSON解析非结构化用专门的分析工具NLP、CV。本章踩坑清单与合规总结新手常见踩坑错误认知后果正确做法所有数据都能放ExcelExcel打不开大JSON无法处理图片用专业工具处理不同类型数据用SQL处理非结构化文本SQL不适合复杂文本分析用NLP库或云服务忽略半结构化数据的嵌套解析错误数据丢失用json_normalize展开嵌套非结构化数据不脱敏用户隐私泄露分析前脱敏只保留必要信息电商数据合规提示用户评价文本虽然是非结构化数据但其中可能包含用户昵称、联系方式等个人信息。在导出或分析前应用正则表达式过滤手机号、邮箱等。客服录音属于高度敏感数据使用前必须获得用户授权且只能在公司内部加密环境中分析严禁下载到个人设备。商品图片如果用于违规检测不要将图片转发给第三方服务除非该服务已签署数据保密协议。结语数据类型分类是电商数据分析的底层基础。搞不清结构化、半结构化、非结构化的区别你就会用错工具、走错方向。希望这一章帮你建立起清晰的数据分类认知为后续的清洗、分析、可视化打下坚实基础。有问题的评论区留言我看到会回复。

更多文章