{
  "schemaVersion": 1,
  "id": "1.1.4",
  "title": "电商平台用户行为分析系统的数据采集与处理流程设计",
  "durationMinutes": 30,
  "category": "业务数据处理与结果分析",
  "scenario": "某电商平台希望通过用户行为数据分析，了解用户购物习惯、购买倾向等，从而优化产品推荐系统，提高用户满意度和销售额。作为数据分析师，您需要设计一套全面的业务数据采集与处理流程，确保数据在进入用户行为分析系统之前经过严格的采集、清洗和预处理。\n\n我们提供一个用户行为数据集（user_behavior_data.csv），包含以下字段：\n\nUserID: 用户ID\n\nUserName: 用户名\n\nAge: 年龄\n\nGender: 性别（Male/Female）\n\nLocation: 位置\n\nLastLogin: 上次登录时间\n\nPurchaseAmount: 购买金额\n\nPurchaseCategory: 购买类别（例如，电子产品、服装、食品等）\n\nReviewScore: 用户评价评分（1-5）\n\nLoginFrequency: 登录频率（每日、每周、每月）\n\n你作为人工智能训练师，根据提供的user_behavior_data.csv数据集和Python代码框架（1.1.4.ipynb），完成以下数据的采集与处理任务，确保数据的准确性和可靠性。请按照以下要求完成任务，确保结果准确并保存相应的截图。\n\n（1）数据采集：\n\n通过运行Python代码（1.1.4.ipynb），从本地文件user_behavior_data.csv中读取数据，并将数据加载到DataFrame中。打印前5条数据。\n\n（2）数据清洗与预处理：\n\n通过运行Python代码（1.1.4.ipynb）对数据进行清洗和预处理，具体要求如下：\n\n处理缺失值：对缺失值进行填充或删除。\n\n数据类型转换：确保每个字段的数据类型正确。\n\n处理异常值：删除不合理的年龄、购买金额和评价评分。\n\n数据标准化：对购买金额和评价评分进行标准化处理。\n\n清洗后的数据保存为新文件cleaned_user_behavior_data.csv。\n\n（3）数据统计：\n\n通过运行Python代码（1.1.4.ipynb），完成以下数据统计任务：\n\n统计每个购买类别的用户数。\n\n统计不同性别的平均购买金额。\n\n统计不同年龄段的用户数（18-25岁、26-35岁、36-45岁、46-55岁、56-65岁、65岁以上）。\n\n将统计结果分别截图以JPG的格式保存，分别命名为“1.1.4-1”、“1.1.4-2”、“1.1.4-3”。",
  "skillRequirements": "（1）能结合人工智能技术要求和业务特征，设计整套业务数据采集流程\n\n（2）能结合人工智能技术要求和业务特征，设计整套业务数据处理流程",
  "qualityIndicators": "（1）完整性指标：数据集中无缺失值和重复记录。\n\n（2）合理性指标：所有数据点符合业务规则，无异常值存在。\n\n（3）清洗效果指标：清洗后的数据集完整、合理，且适于建模分析。",
  "tasks": [
    {
      "id": "code-fill",
      "type": "code-fill",
      "title": "补全代码任务",
      "instructions": "依据公开题面和附件补全代码空位；仅检查完成度与提交格式，不公开标准内容。",
      "codeBlocks": [
        "import pandas\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# 1. 数据采集\n# 从本地文件中读取数据  2分\ndata =  _______________________________\nprint(\"数据采集完成，已加载到DataFrame中\")\n\n# 打印数据的前5条记录  2分\nprint(________________________________)",
        "# 2. 数据清洗与预处理\n# 处理缺失值（删除）  2分\ndata = ________________________________\n\n# 数据类型转换\ndata________________ = ________________(int)   # Age数据类型转换为int 2分\ndata________________ = ________________(float) # PurchaseAmount数据类型转换为float  2分\ndata________________ = ________________(int)   # ReviewScore数据类型转换为int 2分\n\n# 处理异常值  2分\ndata = data[(________________.________________(18, 70)) & \n            (data['PurchaseAmount'] > 0) & \n            (________________.________________(1, 5))]\n\n# 数据标准化\ndata['PurchaseAmount'] = (data['PurchaseAmount'] - ________________) / ________________  # PurchaseAmount数据标准化 2分\ndata['ReviewScore'] = (data['ReviewScore'] - ________________) / ________________        # ReviewScore数据标准化 2分\n\n# 保存清洗后的数据  1分\n________________('cleaned_user_behavior_data.csv', index=False)\nprint(\"数据清洗完成，已保存为 'cleaned_user_behavior_data.csv'\")",
        "# 3. 数据统计\n# 统计每个购买类别的用户数 2分\npurchase_category_counts = ________________.________________\nprint(\"每个购买类别的用户数:\\n\", purchase_category_counts)\n\n# 统计不同性别的平均购买金额 2分\ngender_purchase_amount_mean = ________________(________________)['PurchaseAmount'].mean()\nprint(\"不同性别的平均购买金额:\\n\", gender_purchase_amount_mean)\n\n# 统计不同年龄段的用户数 2分\nbins = [18, 26, 36, 46, 56, 66, np.inf]\nlabels = ['18-25', '26-35', '36-45', '46-55', '56-65', '65+']\ndata['AgeGroup'] = pandas.________________(________________, right=False)\nage_group_counts = data['AgeGroup'].value_counts().sort_index()\nprint(\"不同年龄段的用户数:\\n\", age_group_counts)\n"
      ],
      "blanks": [
        {
          "id": "blank-1",
          "block": 1,
          "placeholder": "_______________________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-2",
          "block": 1,
          "placeholder": "________________________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-3",
          "block": 2,
          "placeholder": "________________________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-4",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-5",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-6",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-7",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-8",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-9",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-10",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-11",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-12",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-13",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-14",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-15",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-16",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-17",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-18",
          "block": 2,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-19",
          "block": 3,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-20",
          "block": 3,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-21",
          "block": 3,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-22",
          "block": 3,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-23",
          "block": 3,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        },
        {
          "id": "blank-24",
          "block": 3,
          "placeholder": "________________",
          "gradingMode": "completion-and-format-only"
        }
      ]
    },
    {
      "id": "1-1-response",
      "type": "rubric-response",
      "title": "数据处理结果分析",
      "instructions": "说明处理过程、结果证据和质量判断。",
      "sections": [
        {
          "id": "response",
          "label": "作答内容"
        }
      ],
      "rubric": [
        {
          "id": "criterion-1",
          "label": "处理流程完整且逻辑清晰",
          "weight": 25
        },
        {
          "id": "criterion-2",
          "label": "关键结果有附件或数据证据",
          "weight": 25
        },
        {
          "id": "criterion-3",
          "label": "结果符合技能要求与质量指标",
          "weight": 25
        },
        {
          "id": "criterion-4",
          "label": "能够解释异常、限制和改进方向",
          "weight": 25
        }
      ]
    },
    {
      "id": "artifact-submission",
      "type": "artifact-submission",
      "title": "选择结果文件",
      "instructions": "文件仅在本机选择并校验，不上传，也不持久化文件内容。",
      "items": [
        {
          "id": "artifact-1",
          "label": "提交文件：cleaned_user_behavior_data.csv",
          "filename": "cleaned_user_behavior_data.csv",
          "extensions": [
            ".csv"
          ],
          "minCount": 1,
          "maxCount": 1,
          "maxSize": 104857600
        },
        {
          "id": "artifact-2",
          "label": "提交文件：1.1.4-1.jpg",
          "filename": "1.1.4-1.jpg",
          "extensions": [
            ".jpg"
          ],
          "minCount": 1,
          "maxCount": 1,
          "maxSize": 104857600
        }
      ]
    }
  ],
  "attachments": [
    {
      "name": "1.1.4.ipynb",
      "url": "assets/1.1.4/1.1.4.ipynb",
      "size": 3152,
      "sha256": "aeb662121068a5946a17cc7a0b2e30f0c9f396dabb6744f9e79073f1fa4e0ed8",
      "mime": "application/x-ipynb+json"
    },
    {
      "name": "1.1.4.md",
      "url": "assets/1.1.4/1.1.4.md",
      "size": 3146,
      "sha256": "3758d2005e8470093cfcac1e4f6097d9af00c721fb89056366ee4688eb2e1382",
      "mime": "text/markdown"
    },
    {
      "name": "user_behavior_data.csv",
      "url": "assets/1.1.4/user_behavior_data.csv",
      "size": 68060,
      "sha256": "0147d06abc773fe47e16ea4c71003b553c99f159c8f3feeb71f76973a867aa91",
      "mime": "text/csv"
    }
  ],
  "grading": {
    "mode": "completion-and-format-only"
  },
  "review": {
    "status": "approved",
    "notice": "由公开题面通用生成，未使用答案树。",
    "conflicts": []
  },
  "contentVersion": "158e64698ec36c06"
}
