背景:假設電商平台會員300萬,商品按照系列劃分有30個系列,本次分析的目的:分析使用者購買系列間的相關性。
# -*- coding: utf-8 -*-
"""created on mon may 13 13:40:14 2019
@author: liuxiaohuan
"""import os
import cx_oracle
import pandas.io.sql as sql
import pandas as pd
import numpy as np
import time
start = time.clock()
#資料庫表中有中文,如不加以下**,中文會亂碼
os.environ['nls_lang'] = 'simplified chinese_china.utf8'
#連線資料庫
conn = cx_oracle.connect('erfd/[email protected]/sdad')
sqlstr1 = '''select distinct xilie from list_xilie'''
sqlstr2 = '''select distinct memberid from t05_e3_order_bill_main_info where memberid<1000'''
#讀取轉換使用者id和系列
col = sql.read_sql(sqlstr1,conn)
col_data = np.array(col)
col_list=col_data.tolist()
memberid=sql.read_sql(sqlstr2,conn)
memberid_data=np.array(memberid)
memberid_list=memberid_data.tolist()
col_list_final=
for i in range(0,len(col_list)):
#print(col_list[i])
col_new=str(col_list[i][0])
#print(col_new)
memberid_list_final=
for i in range(0,len(memberid_list)):
memberid_new=str(memberid_list[i][0])
#構造資料結構
data=pd.dataframe(0,columns=col_list_final,index=memberid_list_final)
#print(data)
#訂單表中,使用者購買系列
sqlstr = '''select head.memberid,xilie.xilie,sum(dtl.act_pay_amt) as amt
from list_xilie xilie
join t05_e3_order_bill_dtl_info dtl on xilie.sku=dtl.sku
join t05_e3_order_bill_main_info head on head.order_billid=dtl.order_billid
where trunc(head.payment_tm/(100 * 6 * 6 * 24) + to_date('1970-01-01 08:00:00', 'yyyy-mm-dd hh:mi:ss'))
between to_date('2019-05-05','yyyy-mm-dd') and to_date('2019-05-13','yyyy-mm-dd')
and head.order_bill_status <> 3
group by head.memberid,xilie.xilie'''
result = sql.read_sql(sqlstr,conn)
print(type(result))
for index,row in result.iterrows():#遍歷第2個表中的每一行資料
col_name=row['xilie']
real_index=row['memberid']
data.loc[real_index,col_name]=row['amt']
data=data.fillna(0)
data=data.corr()
data.to_csv ('f:\\out190101_0512.csv',encoding = "utf-8",na_rep = "",header=true)
print(data.corr())
其中,以上**中data的資料結構如下:
使用者id
系列1系列2
系列3系列4
系列500100
00000200
00000300
00000400
00000500
000result資料結構如下:
使用者id
購買系列名稱
購買金額
001系列1
10001
系列220
001系列3
30002
系列421
003系列5
32004
系列552
004系列3
89004
系列112
005系列3
66然後,利用result資料來更新data資料結構,將購買金額更新至data中,得到如下資料結構:
使用者id
系列1系列2
系列3系列4
系列5001
1020300
000200
021000300
0032004120
8905200500
6600系列1
系列2系列3
系列4系列5
系列11
0.20.1
0.80.6
系列20.1
10.3
0.80.4
系列30.2
0.71
0.60.2
系列40.8
0.40.3
10.7
系列50.9
0.50.2
0.11
以上就是得到的最終結果。
從0到電商 使用者模組
根據返回值建立返回物件 返回值 serverresponse 類 包含三個資料 狀態 status 資訊 msg 泛型 資料 data public class serverresponseimplements serializable private serverresponse int stat...
電商使用者行為分析大資料平台相關系列1 環境介紹
測試環境,由3臺虛機 vmware 每台記憶體3g 作業系統 centos7 軟體 a jdk1.7 b hadoop 2.5.0 cdh5.3.6 c hive 0.13.1 cdh5.3.6.tar d scala 2.11.4 e zookeeper 3.4.5 cdh5.3.6 f kafk...
分享電商使用者生命週期價值知識
618購物節在即,剁手黨們已經迫不及待,大大小小的電商平台也開始早早策劃籌備活動。作為電商企業,如何才能在這波流量高峰中挖掘出屬於自己的節日紅利?首先,我們還得從電商使用者ltv 使用者生命週期價值 談起。在電商運營中,常常會聽到使用者生命週期價值。為什麼要了解使用者生命週期價值?使用者生命週期可以...