600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Google专卖店顾客消费预测问题:如何将数据的json格式转换成csv格式

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

时间:2021-03-31 15:34:58

相关推荐

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

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

案例介绍

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

数据描述

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

train_v2.csv: 包括从.8.1——.4.30的顾客交易信息。

test_v2.csv: 包括从.5.1——.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 osimport jsonimport numpy as npimport pandas as pdfrom 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行训练子集,看看转换的结果。

%%timedf_small = load_df(nrows=200000)

Loaded train_v2.csv. Shape: (200000, 26)

Wall time: 1min 11s

df_small.info()

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

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。