Python 電商使用者購買系列相關性

2021-09-22 21:27:23 字數 3140 閱讀 5091

背景:假設電商平台會員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 使用者生命週期價值 談起。在電商運營中,常常會聽到使用者生命週期價值。為什麼要了解使用者生命週期價值?使用者生命週期可以...