机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

案例介绍

商界普遍存在"80/20"原则——20%的顾客产生80%的消费。在这个案例里,我们将根据Google专卖店顾客消费数据集,预测每位顾客的消费金额。

数据描述

该案例包括训练集train_v2.csv和检验集test_v2.csv.

  • train_v2.csv: 包括从2016.8.1——2018.4.30的顾客交易信息。

  • test_v2.csv: 包括从2018.5.1——2018.10.15的顾客交易信息。

数据集的每一行表示对该专卖店的一次访问,我们要预测的是每位顾客总消费额的对数值。

数据域

  • fullVisitorId: 顾客唯一标识符

  • channelGrouping: 顾客渠道

  • date: 顾客光顾日期

  • device: 进店设备

  • geoNetwork: 顾客地理位置信息

  • sessionId: 访问唯一标识符

  • socialEngagementType: 参与类型

  • totals: 消费总额

  • trafficSource: 流量来源

  • visitId: 访问标识符

  • visitNumber: 访问次数

  • visitStartTime: 访问开始时间

请注意:以上某些域是json格式,我们需要将所有的json域转换成规则的csv文件。

JSON数据格式

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它采用完全独立于编程语言的文本格式存储和表示数据。在json语法里

  • 数据在名称/值对中:名称是字符串,使用双引号表示。值可以是:数字(整数或浮点数),字符串(在双引号中),数组(在方括号中),对象(在花括号中),true/false/null.

  • 数据由逗号分隔:

  • 花括号保存对象:对象可以包含各种数据类型,包括数组。

  • 方括号保存数组:数字可以包含对象。

举一个json对象的例子:

格式转换

加载必需的库。

import os
import json
import numpy as np
import pandas as pd
from pandas.io.json import json_normalize

加载一部分训练集,查看变量的类型。

train = pd.read_csv('../input/train_v2.csv', nrows = 100)
train.info()
train = pd.read_csv('e:/kaggle_exercises/CustomerRevenue/input/train_v2.csv', nrows = 100)
train.info()


其中,‘device’, ‘geoNetwork’, ‘totals’, 'trafficSource’是json格式的变量。我们把这些变量转换成普通的csv格式,与其它变量组成新的csv文件。

def load_df(csv_path='e:/kaggle_exercises/CustomerRevenue/input/train_v2.csv', nrows=None):JSON_COLUMNS = ['device', 'geoNetwork', 'totals', 'trafficSource']df = pd.read_csv(csv_path, converters={column: json.loads for column in JSON_COLUMNS}, dtype={'fullVisitorId': 'str'}, # Important!!nrows=nrows)for column in JSON_COLUMNS:column_as_df = json_normalize(df[column])column_as_df.columns = [f"{column}.{subcolumn}" for subcolumn in column_as_df.columns]df = df.drop(column, axis=1).merge(column_as_df, right_index=True, left_index=True)print(f"Loaded {os.path.basename(csv_path)}. Shape: {df.shape}")return df

定义转换函数load_df()后,加载20,000行训练子集,看看转换的结果。

%%time
df_small = load_df(nrows=200000)

Loaded train_v2.csv. Shape: (200000, 26)
Wall time: 1min 11s

df_small.info()


转换完整的训练集与检验集。

%%time
df_train = load_df()
df_test = load_df("../input/test.csv")

把转换后的数据集保存为新的csv文件。

%%time
df_train.to_csv("train-flattened.csv", index=False)
df_test.to_csv("test-flattened.csv", index=False)

Google专卖店顾客消费预测问题:如何将数据的json格式转换成csv格式相关推荐

  1. 【Android 安装包优化】WebP 图片转换 ( 使用 iSparta 转换 WebP 图片格式 | Google 提供的 libwebp 库 )

    文章目录 一.使用 iSparta 转换 WebP 图片格式 二.Google 提供的 libwebp 库 三.参考资料 一.使用 iSparta 转换 WebP 图片格式 isparta 工具已经停 ...

  2. 《顾客消费心理分析与服务营销技巧》

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />   <顾 ...

  3. 2014世界杯预测与开源大数据

    开源的精神在于使用者可以使用.复制.散布.研究.改进代码或软件.而当今如火如荼的世界杯又和开源有什么关系呢?全球首家开发者服务商店来为大家讲解下        记得巴西世界杯在圣保罗体育场开幕的第二天 ...

  4. LEAP能源供应转换、能源需求及碳排放预测中的基础数据搜集及处理、能源平衡表核算、模型框架构建、模型操作、情景设计、结果分析、优化、预测结果不确定性分析

    采用部门分析法建立的LEAP(Long Range Energy Alternatives Planning System/ Low emission analysis platform,长期能源可替 ...

  5. 快来看看Google出品的Protocol Buffer,别仅仅会用Json和XML了

    前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 事实上 是 Google出品的一种轻量 & 高效的结构化数据 ...

  6. GPS模块输出的NMEA数据ddmm.mmmm转换成dd.ddddd,在google Earth Pro中描点

    GPS模块输出的数据是NMEA格式,其中GPGGA字段包含我们需要的经纬度信息. 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,12.2 ...

  7. DL之LSTM之MvP:基于TF利用LSTM基于DIY时间训练csv文件数据预测后100个数据(多值预测)状态

    DL之LSTM之MvP:基于TF利用LSTM基于DIY时间训练csv文件数据预测后100个数据(多值预测)状态 目录 数据集csv文件内容 输出结果 设计思路 训练记录全过程 数据集csv文件内容 输 ...

  8. DL之LSTM之UvP:基于TF利用LSTM基于DIY时间训练1200个数据预测后200个数据状态

    DL之LSTM之UvP:基于TF利用LSTM基于DIY时间训练1200个数据预测后200个数据状态 目录 输出结果 设计思路 训练记录全过程 输出结果 设计思路 训练记录全过程 INFO:tensor ...

  9. opta球员大数据预测胜负_大数据预测简介及使用流程

    中足网大数据预测,是基于中足网以及多家主流数据提供商的数据库,汇总数万场比赛的盘口和热度信息得出的人工智能预测模型,经过专家团数月研制,不断调整算法,命中率已经达到行业内相当高的水平. 1 目前预测玩 ...

  10. 使用GEE(Google Earth Engine)下载STRM30m分辨率高程数据

    简介 本文介绍如何使用GEE(Google Earth Engine)下载STRM30m分辨率高程数据并用ArcMap加载行政边界裁剪栅格图层. 准备工作 申请Google账号 注册Google Dr ...

最新文章

  1. Moses 里的参数(未完成)
  2. uvalive5986(贪心)
  3. c语言的数据类型复数型,C语言数据类型
  4. C语言,为什么动态内存分配申请后,还要再释放?
  5. kali root默认密码_Kali Linux root 默认密码是:toor
  6. LeetCode-697. 数组的度
  7. python函数返回布尔值_python-3.x - 函数不返回正确的布尔值 - SO中文参考 - www.soinside.com...
  8. 计算机组装的虚拟仿真实验报告,组装计算机的虚拟实验室
  9. Java旅游网站源码+页面
  10. 百旺智能编码_【百旺开票软件税控盘版】百旺金税盘开票软件下载 v2020 最新版本-趣致软件园...
  11. Java实现拼图小游戏(3)—— 添加图片(含JFrame源码阅读)
  12. 电子邮件群发最好用的邮箱是哪个?
  13. Windows命令窗口输入命令报错不是内部或外部命令,也不是可运行的程序 或批处理文件
  14. 2021年度排第一名的微信段子,笑晕了,太经典
  15. 互联网公司的监控运维
  16. 【生活随笔】夜色漫步
  17. html前端小知识:制作简单的纯文字图标按钮
  18. Ajax 不显示BlockUI 的问题
  19. 华为鸿蒙系统没有芯片,被低估的鸿蒙系统,未来或将解决华为缺芯的难题
  20. 媒体中心软件专题:XBMC

热门文章

  1. 蛇形填数 ------- 模拟水题
  2. OpenStack源码系列---nova-conductor
  3. rails 开发随手记 9
  4. ASP实现AJAX的几种方式!
  5. web安全day47:口令、字典、crunch、cupp、hydra、MSF-psexec_psh的使用
  6. HTML的文本可以删除吗,如果内部包含一些文本,请删除html标记
  7. 基于Cocos2d-x开发guardCarrot--7 《保卫萝卜2》关卡选择页面开发
  8. kickstart技术安装操作系统
  9. Python自学笔记-map和reduce函数(来自廖雪峰的官网Python3)
  10. 转:面试题收集——Java基础部分(一)