Amazon数据集入门指南:从数据获取到实战分析

1次阅读
没有评论

共计 1734 个字符,预计需要花费 5 分钟才能阅读完成。

image.webp

Amazon 数据集简介

Amazon 数据集是亚马逊公司公开的一组电商相关数据,包含产品信息、用户评价、销售记录等丰富内容。这些数据对于研究推荐系统、用户行为分析、市场趋势预测等领域非常有价值。

Amazon 数据集入门指南:从数据获取到实战分析

  • 数据类型:主要包括产品元数据(标题、描述、类别)、用户评论(评分、文本)、销售排名等
  • 数据规模:从几千条到数百万条不等
  • 常见应用:情感分析、产品推荐、价格预测、用户画像构建

数据获取方法

公开数据集下载

亚马逊官方提供了多个公开数据集,最常用的是:

  1. 访问 Amazon 产品数据 页面
  2. 选择需要的类别(如电子产品、图书等)
  3. 下载对应的 JSON 或 CSV 文件

通过 API 获取

对于需要实时数据的场景,可以使用 Amazon Product Advertising API:

  1. 注册 AWS 账户并获取 API 密钥
  2. 安装官方 SDK:pip install python-amazon-product-api
  3. 配置认证信息
from amazonproduct import API
api = API(locale='us')

# 搜索电子产品
result = api.item_search('Electronics', Keywords='smartphone')

数据预处理与清洗

原始数据通常需要经过以下处理步骤:

  1. 缺失值处理
  2. 删除缺失过多的列
  3. 对数值型数据用均值 / 中位数填充
  4. 对文本数据用 ”Unknown” 或空字符串填充

  5. 文本清洗

  6. 去除 HTML 标签
  7. 统一大小写
  8. 处理特殊字符

  9. 数据转换

  10. 将时间戳转为 datetime 对象
  11. 对分类变量进行编码
import pandas as pd
import re

# 示例:清洗评论数据
def clean_text(text):
    text = re.sub(r'<[^>]+>', '', text)  # 去除 HTML
    text = re.sub(r'\s+', ' ', text)    # 合并空白
    return text.strip()

df['cleaned_review'] = df['reviewText'].apply(clean_text)

基础数据分析示例

以下是一个完整的分析流程示例,使用 Python 的 pandas 和 matplotlib:

import pandas as pd
import matplotlib.pyplot as plt

# 1. 加载数据
df = pd.read_json('Electronics_5.json', lines=True)

# 2. 基础统计
print(df.describe())
print(df['overall'].value_counts())

# 3. 评分分布可视化
plt.figure(figsize=(8,4))
df['overall'].value_counts().sort_index().plot(kind='bar')
plt.title('Product Rating Distribution')
plt.xlabel('Rating')
plt.ylabel('Count')
plt.show()

# 4. 评论长度分析
df['review_length'] = df['reviewText'].str.len()
print(df.groupby('overall')['review_length'].mean())

常见问题与解决方案

  • 问题 1 :JSON 文件读取报错
  • 解决方案:使用 lines=True 参数逐行读取

  • 问题 2 :内存不足

  • 解决方案:分块读取 (chunksize 参数)或使用 Dask 库

  • 问题 3 :API 限速

  • 解决方案:添加适当的延迟(如time.sleep(1))

  • 问题 4 :文本编码问题

  • 解决方案:指定 encoding='utf-8' 或尝试其他编码

性能优化建议

  1. 数据采样:开发阶段使用小样本(如 1% 数据)
  2. 使用高效数据类型
  3. 将字符串转为 category 类型
  4. 使用 int8/int16 替代默认整数类型
  5. 向量化操作:避免循环,使用 pandas 内置方法
  6. 并行处理:对大数据使用 multiprocessing

进阶练习建议

尝试分析以下问题并分享你的发现:

  1. 高评分和低评分产品的评论长度是否有显著差异?
  2. 某些产品的评分是否随时间呈现趋势性变化?
  3. 不同产品类别的平均评分对比

你可以将分析结果发布到技术社区,与其他人交流学习心得。数据分析是一个不断实践的过程,多尝试不同的分析角度会有意想不到的收获。

正文完
 0
评论(没有评论)