自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

大數(shù)據(jù) 數(shù)據(jù)分析
本文使用的數(shù)據(jù)集包含了2014.11.18到2014.12.18之間,淘寶App移動(dòng)端一個(gè)月內(nèi)的用戶行為數(shù)據(jù)。該數(shù)據(jù)有12256906天記錄,共6列數(shù)據(jù)。

1、項(xiàng)目背景與分析說明

1)項(xiàng)目背景

網(wǎng)購(gòu)已經(jīng)成為人們生活不可或缺的一部分,本次項(xiàng)目基于淘寶app平臺(tái)數(shù)據(jù),通過相關(guān)指標(biāo)對(duì)用戶行為進(jìn)行分析,從而探索用戶相關(guān)行為模式。

2)數(shù)據(jù)和字段說明

本文使用的數(shù)據(jù)集包含了2014.11.18到2014.12.18之間,淘寶App移動(dòng)端一個(gè)月內(nèi)的用戶行為數(shù)據(jù)。該數(shù)據(jù)有12256906天記錄,共6列數(shù)據(jù)。

  • user_id:用戶身份
  • item_id:商品id
  • behavior_type:用戶行為類型(包括點(diǎn)擊、收藏、加入購(gòu)物車、支付四種行為,分別用數(shù)字1、2、3、4表示)
  • user_geohash:地理位置
  • item_category:品類id(商品所屬的分類)
  • time:用戶行為發(fā)生的時(shí)間

3)分析的維度

  • 流量指標(biāo)分析
  • 用戶行為分析
  • 漏斗流失分析
  • 用戶價(jià)值RFM分析

4)電商常用分析方法 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

5)什么是漏斗分析?

“漏斗分析”是一套流程式數(shù)據(jù)分析,它能夠科學(xué)反映用戶行為狀態(tài),以及從起點(diǎn)到終點(diǎn)各階段用戶轉(zhuǎn)化率情況的一種重要分析模型。 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

2、導(dǎo)入相關(guān)庫(kù)

  1. import numpy as np 
  2. import pandas as pd 
  3. import matplotlib as  mpl 
  4. import matplotlib.pyplot as  plt 
  5. import seaborn as sns 
  6. import warnings 
  7. # 設(shè)置為seaborn繪圖風(fēng)格 
  8. sns.set(style="darkgrid",font_scale=1.5) 
  9.  
  10. # 用來顯示中文標(biāo)簽 
  11. mpl.rcParams["font.family"] = "SimHei" 
  12.  
  13. # 用來顯示負(fù)號(hào) 
  14. mpl.rcParams["axes.unicode_minus"] = False 
  15.  
  16. # 有時(shí)候運(yùn)行代碼時(shí)會(huì)有很多warning輸出,像提醒新版本之類的,如果不想這些亂糟糟的輸出,可以使用如下代碼 
  17. warnings.filterwarnings('ignore'

3、數(shù)據(jù)預(yù)覽、數(shù)據(jù)預(yù)處理

  1. # 注意:str是為了將所有的字段都讀成字符串 
  2. df = pd.read_csv("taobao.csv",dtype=str) 
  3. df.shape 
  4. df.info() 
  5. df.sample(5) 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

1)計(jì)算缺失率

  1. # 由于地理位置的缺失值太多,我們也沒辦法填充,因此先刪除這一列 
  2. df.apply(lambda x:sum(x.isnull())/len(x),axis=0) 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

2)刪除地理位置這一列

  1. df.drop(["user_geohash"],axis=1,inplace=True

3)處理時(shí)間time列,將該列拆分為date日期列,和hour小時(shí)列

  1. df["date"] = df.time.str[0:-3] 
  2. df["hour"] = df.time.str[-2:] 
  3. df.sample(5) 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

4)將time、date列都變?yōu)闃?biāo)準(zhǔn)日期格式,將hour列變?yōu)閕nt格式

  1. df["date"] = pd.to_datetime(df["date"]) 
  2. df["time"] = pd.to_datetime(df["time"]) 
  3. df["hour"] = df["hour"].astype(int
  4. df.dtypes 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

5)將數(shù)據(jù)按照time列,升序排列

  1. df.sort_values(by="time",ascending=True,inplace=True
  2. df.head() 

解果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

6)刪除原始索引,重新生成新的索引

  1. df.reset_index(drop=True,inplace=True
  2. df.head() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

知識(shí)點(diǎn):注意reset_index()中傳入?yún)?shù)drop的這種用法。

7)使用describe()函數(shù)查看數(shù)據(jù)的分布,這里使用了一個(gè)include參數(shù),注意一下

  1. # 查看所有object字符串類型的數(shù)據(jù)分布狀況 
  2. df.describe(include=["object"]) 
  3. # describe()默認(rèn)只會(huì)統(tǒng)計(jì)數(shù)值型變量的數(shù)據(jù)分布情況。 
  4. df.describe() 
  5. # 查看所有數(shù)據(jù)類型的數(shù)據(jù)分布狀況 
  6. df.describe(include="all"

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

知識(shí)點(diǎn):注意describe()函數(shù)中傳入?yún)?shù)include的用法。

8)對(duì)時(shí)間數(shù)據(jù)做一個(gè)概覽

  1. df["date"].unique() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

4、模型構(gòu)建

1)流量指標(biāo)的處理

  • pv:指的是頁(yè)面總瀏覽量。每個(gè)用戶每刷新一次網(wǎng)頁(yè),就會(huì)增加一次pv。
  • uv:指的是獨(dú)立訪客數(shù)。一臺(tái)電腦一個(gè)ip也就是一個(gè)獨(dú)立訪客。實(shí)際分析中,我們都是認(rèn)為每個(gè)人只使用一臺(tái)電腦,即每一個(gè)獨(dú)立訪客代表一個(gè)用戶。

① 總計(jì)pv和uv

  1. total_pv = df["user_id"].count() 
  2. total_pv 
  3. total_uv = df["user_id"].nunique() 
  4. total_uv 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

結(jié)果分析:從圖中可以看到,該網(wǎng)站頁(yè)面的總瀏覽量為12256906次,該頁(yè)面的獨(dú)立訪客數(shù)共有10000個(gè)。

② 日期維度下的uv和pv:uv表示頁(yè)面總瀏覽量,pv表示獨(dú)立訪客數(shù)

  1. pv_daily = df.groupby("date")['user_id'].count() 
  2. pv_daily.head(5) 
  3. uv_daily = df.groupby("date")['user_id'].apply(lambda x: x.nunique()) 
  4. # uv_daily = df.groupby("date")['user_id'].apply(lambda x: x.drop_duplicates().count()) 
  5. uv_daily.head() 
  6. pv_uv_daily = pd.concat([pv_daily,uv_daily],axis=1) 
  7. pv_uv_daily.columns = ["pv","uv"
  8. pv_uv_daily.head() 
  9. # 繪圖代碼如下 
  10. plt.figure(figsize=(16,10)) 
  11. plt.subplot(211) 
  12. plt.plot(pv_daily,c="r"
  13. plt.title("每天頁(yè)面的總訪問量(PV)"
  14. plt.subplot(212) 
  15. plt.plot(uv_daily,c="g"
  16. plt.title("每天頁(yè)面的獨(dú)立訪客數(shù)(UV)"
  17. #plt.suptitle("PV和UV的變化趨勢(shì)"
  18. plt.tight_layout() 
  19. plt.savefig("PV和UV的變化趨勢(shì)",dpi=300) 
  20. plt.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

繪圖如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

結(jié)果分析:從圖中可以看出,pv和uv數(shù)據(jù)呈現(xiàn)高度的正相關(guān)。雙12前后,pv和uv都在350000-400000之間波動(dòng),雙十二的時(shí)候,頁(yè)面訪問量急劇上升,證明這次活動(dòng)的效果很好。

③ 時(shí)間維度下的pv和uv

  1. pv_hour = df.groupby("hour")['user_id'].count() 
  2. pv_hour.head() 
  3. uv_hour = df.groupby("hour")['user_id'].apply(lambda x: x.nunique()) 
  4. uv_hour.head() 
  5. pv_uv_hour = pd.concat([pv_hour,uv_hour],axis=1) 
  6. pv_uv_hour.columns = ["pv_hour","uv_hour"
  7. pv_uv_hour.head() 
  8. # 繪圖代碼如下 
  9. plt.figure(figsize=(16,10)) 
  10. pv_uv_hour["pv_hour"].plot(c="steelblue",label="每個(gè)小時(shí)的頁(yè)面總訪問量"
  11. plt.ylabel("頁(yè)面訪問量"
  12.  
  13. pv_uv_hour["uv_hour"].plot(c="red",label="每個(gè)小時(shí)的頁(yè)面獨(dú)立訪客數(shù)",secondary_y=True
  14. plt.ylabel("頁(yè)面獨(dú)立訪客數(shù)"
  15. plt.xticks(range(0,24),pv_uv_hour.index
  16.  
  17. plt.legend(loc="best"
  18. plt.grid(True
  19.  
  20. plt.tight_layout() 
  21. plt.savefig("每個(gè)小時(shí)的PV和UV的變化趨勢(shì)",dpi=300) 
  22. plt.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

繪圖如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

結(jié)果分析:從圖中可以看出,晚上22:00-凌晨5:00,頁(yè)面的訪問用戶數(shù)量和訪問量逐漸降低,該時(shí)間段很多人都是處在休息之中。而從早上6:00-10:00用戶數(shù)量逐漸呈現(xiàn)上升趨勢(shì),10:00-18:00有一個(gè)比較平穩(wěn)的狀態(tài),這個(gè)時(shí)間段是正常的上班時(shí)間。但是18:00以后,一直到晚上22:00,用戶劇烈激增,一直達(dá)到一天中訪問用戶數(shù)的最大值。運(yùn)營(yíng)人員可以參考用戶的活躍時(shí)間段,采取一些促銷活動(dòng)。

2)用戶行為指標(biāo)

① 總計(jì)點(diǎn)擊、收藏、添加購(gòu)物車、支付用戶的情況

  1. type_1 = df[df['behavior_type']=="1"]["user_id"].count() 
  2. type_2 = df[df['behavior_type']=="2"]["user_id"].count() 
  3. type_3 = df[df['behavior_type']=="3"]["user_id"].count() 
  4. type_4 = df[df['behavior_type']=="4"]["user_id"].count() 
  5. print("點(diǎn)擊用戶:",type_1) 
  6. print("收藏用戶:",type_2) 
  7. print("添加購(gòu)物車用戶:",type_3) 
  8. print("支付用戶:",type_4) 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

結(jié)果分析:從圖中可以看到,用戶進(jìn)行頁(yè)面點(diǎn)擊–>收藏和加如購(gòu)物車–>支付,逐漸呈現(xiàn)下降趨勢(shì)。關(guān)于這方面的分析,將在下面的漏斗圖中繼續(xù)更為深入的說明。

② 日期維度下,點(diǎn)擊、收藏、添加購(gòu)物車、支付用戶的情況

  1. pv_date_type = pd.pivot_table(df,index='date'
  2.                              columns='behavior_type'
  3.                              values='user_id'
  4.                              aggfunc=np.size
  5. pv_date_type.columns = ["點(diǎn)擊","收藏","加入購(gòu)物車","支付"
  6. pv_date_type.head() 
  7. # 繪圖如下 
  8. plt.figure(figsize=(16,10)) 
  9. sns.lineplot(data=pv_date_type[['收藏''加入購(gòu)物車''支付']]) 
  10.  
  11. plt.tight_layout() 
  12. plt.savefig("不同日期不同用戶行為的PV變化趨勢(shì)",dpi=300) 
  13. plt.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

繪圖如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

③ 時(shí)間維度下,點(diǎn)擊、收藏、添加購(gòu)物車、支付用戶的情況

  1. pv_hour_type = pd.pivot_table(df,index='hour'
  2.                              columns='behavior_type'
  3.                              values='user_id'
  4.                              aggfunc=np.size
  5. pv_hour_type.columns = ["點(diǎn)擊","收藏","加入購(gòu)物車","支付"
  6. pv_hour_type.head() 
  7. # 繪圖如下 
  8. plt.figure(figsize=(16,10)) 
  9. sns.lineplot(data=pv_hour_type[['收藏''加入購(gòu)物車''支付']]) 
  10.  
  11. pv_hour_type["點(diǎn)擊"].plot(c="pink",linewidth=5,label="點(diǎn)擊",secondary_y=True
  12. plt.legend(loc="best"
  13.  
  14. plt.tight_layout() 
  15. plt.savefig("不同小時(shí)不同用戶行為的PV變化趨勢(shì)",dpi=300) 
  16. plt.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

繪圖如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

④ 支付次數(shù)前10的用戶行為細(xì)分

  1. df["user_id1"] = df["user_id"
  2. buy_first = pd.pivot_table(df,index='user_id'
  3.                              columns='behavior_type'
  4.                              values='user_id1'
  5.                              aggfunc="count"
  6. buy_first.columns = ["點(diǎn)擊","收藏","加入購(gòu)物車","支付"
  7. buy_first_10 = buy_first.sort_values(by="支付",ascending=False)[:10] 
  8. buy_first_10 
  9. # 繪制圖形如下 
  10. plt.figure(figsize=(16,10)) 
  11. plt.subplot(311) 
  12. plt.plot(buy_first_10["點(diǎn)擊"],c="r"
  13. plt.title("點(diǎn)擊數(shù)的變化趨勢(shì)"
  14. plt.subplot(312) 
  15. plt.plot(buy_first_10["收藏"],c="g"
  16. plt.title("收藏?cái)?shù)的變化趨勢(shì)"
  17. plt.subplot(313) 
  18. plt.plot(buy_first_10["加入購(gòu)物車"],c="b"
  19. plt.title("加入購(gòu)物車的變化趨勢(shì)"
  20.  
  21. plt.xticks(np.arange(10),buy_first_10.index
  22.  
  23. plt.tight_layout() 
  24. plt.savefig("支付數(shù)前10的用戶,在點(diǎn)擊、收藏、加入購(gòu)物車的變化趨勢(shì)",dpi=300) 
  25. plt.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

繪圖如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

結(jié)果分析:通過這個(gè)分析,我們可以看出,購(gòu)買次數(shù)最多的用戶,點(diǎn)擊、收藏、加入購(gòu)車的次數(shù)不一定是最多的,

⑤ ARPPU分析:平均每用戶收入,即可通過“總收入/AU” 計(jì)算得出

  1. total_custome = df[df['behavior_type'] == "4"].groupby(["date","user_id"])["behavior_type"].count()\ 
  2.                 .reset_index().rename(columns={"behavior_type":"total"}) 
  3. total_custome.head() 
  4. total_custome2 = total_custome.groupby("date").sum()["total"]/\ 
  5.                  total_custome.groupby("date").count()["total"
  6. total_custome2.head(10) 
  7. # 繪圖如下 
  8. x = len(total_custome2.index.astype(str)) 
  9. y = total_custome2.index.astype(str) 
  10.  
  11. plt.plot(total_custome2.values
  12. plt.xticks(range(0,30,7),[y[i] for i in range(0,x,7)],rotation=90) 
  13. plt.title("每天的人均消費(fèi)次數(shù)"
  14.  
  15. plt.tight_layout() 
  16. plt.savefig("每天的人均消費(fèi)次數(shù)",dpi=300) 
  17. plt.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

繪圖如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

⑥ 日ARPU分析:表示的是平均每用戶收入。ARPU = 總收入/AU得到

  1. df["operation"] = 1 
  2. aa = df.groupby(["date","user_id",'behavior_type'])["operation"].count().\ 
  3.      reset_index().rename(columns={"operation":"total"}) 
  4. aa.head(10) 
  5. aa1 = aa.groupby("date").apply(lambda x: x[x["behavior_type"]=="4"]["total"].sum()/x["user_id"].nunique()) 
  6. aa1.head(10) 
  7. # 繪圖如下 
  8. x = len(aa1.index.astype(str)) 
  9. y = aa1.index.astype(str) 
  10.  
  11. plt.plot(aa1.values
  12. plt.xticks(range(0,30,7),[y[i] for i in range(0,x,7)],rotation=90) 
  13. plt.title("每天的活躍用戶消費(fèi)次數(shù)"
  14.  
  15. plt.tight_layout() 
  16. plt.savefig("每天的活躍用戶消費(fèi)次數(shù)",dpi=300) 
  17. plt.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

繪圖如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

⑦ 付費(fèi)率PUR = APA/AU,這里用【消費(fèi)人數(shù) / 活躍用戶人數(shù)】代替

  1. rate = aa.groupby("date").apply(lambda x: x[x["behavior_type"]=="4"]["total"].count()/x["user_id"].nunique()) 
  2. rate.head(10) 
  3. # 繪圖如下 
  4. x = len(rate.index.astype(str)) 
  5. y = rate.index.astype(str) 
  6.  
  7. plt.plot(rate.values
  8. plt.xticks(range(0,30,7),[y[i] for i in range(0,x,7)],rotation=90) 
  9. plt.title("付費(fèi)率分析"
  10.  
  11. plt.tight_layout() 
  12. plt.savefig("付費(fèi)率分析",dpi=300) 
  13. plt.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

⑧ 復(fù)購(gòu)情況分析(復(fù)購(gòu)率)

  1. re_buy = df[df["behavior_type"]=="4"].groupby("user_id")["date"].apply(lambda x: x.nunique()) 
  2. print(len(re_buy)) 
  3. re_buy[re_buy >= 2].count() / re_buy.count() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

3)漏斗分析

  1. df_count = df.groupby("behavior_type").size().reset_index().\ 
  2.            rename(columns={"behavior_type":"環(huán)節(jié)",0:"人數(shù)"}) 
  3.             
  4. type_dict = { 
  5.     "1":"點(diǎn)擊"
  6.     "2":"收藏"
  7.     "3":"加入購(gòu)物車"
  8.     "4":"支付" 
  9. df_count["環(huán)節(jié)"] = df_count["環(huán)節(jié)"].map(type_dict) 
  10.  
  11. a = df_count.iloc[0]["人數(shù)"
  12. b = df_count.iloc[1]["人數(shù)"
  13. c = df_count.iloc[2]["人數(shù)"
  14. d = df_count.iloc[3]["人數(shù)"
  15. funnel = pd.DataFrame({"環(huán)節(jié)":["點(diǎn)擊","收藏及加入購(gòu)物車","支付"],"人數(shù)":[a,b+c,d]}) 
  16.  
  17. funnel["總體轉(zhuǎn)化率"] = [i/funnel["人數(shù)"][0] for i in funnel["人數(shù)"]] 
  18. funnel["單一轉(zhuǎn)化率"] = np.array([1.0,2.0,3.0]) 
  19. for i in range(0,len(funnel["人數(shù)"])): 
  20.     if i == 0: 
  21.         funnel["單一轉(zhuǎn)化率"][i] = 1.0 
  22.     else
  23.         funnel["單一轉(zhuǎn)化率"][i] = funnel["人數(shù)"][i] / funnel["人數(shù)"][i-1] 
  24. # 繪圖如下 
  25. import plotly.express as px 
  26. import plotly.graph_objs as go 
  27.  
  28. trace = go.Funnel( 
  29.     y = ["點(diǎn)擊""收藏及加入購(gòu)物車""購(gòu)買"], 
  30.     x = [funnel["人數(shù)"][0], funnel["人數(shù)"][1], funnel["人數(shù)"][2]], 
  31.     textinfo = "value+percent initial"
  32.     marker=dict(color=["deepskyblue""lightsalmon""tan"]), 
  33.     connector = {"line": {"color""royalblue""dash""solid""width": 3}}) 
  34.      
  35. data =[trace] 
  36.  
  37. fig = go.Figure(data) 
  38.  
  39. fig.show() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

繪圖如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

結(jié)果分析:由于收藏和加入購(gòu)車都是有購(gòu)買意向的一種用戶行為,切不分先后順序,因此我們將其合并看作一個(gè)階段。從上面的漏斗圖和funnel表可以看出,從瀏覽到具有購(gòu)買意向(收藏和加入購(gòu)物車),只有5%的轉(zhuǎn)化率,但是到了真正到購(gòu)買的轉(zhuǎn)化率只有1%,再看“單一轉(zhuǎn)化率”,從具有購(gòu)買意向到真正購(gòu)買的轉(zhuǎn)化率達(dá)到了20%。說明從瀏覽到進(jìn)行收藏和加入購(gòu)物車的階段,是指標(biāo)提升的重要環(huán)節(jié)。

4)客戶價(jià)值分析(RFM分析)

  1. from datetime import datetime 
  2. # 最近一次購(gòu)買距離現(xiàn)在的天數(shù) 
  3. recent_buy = df[df["behavior_type"]=="4"].groupby("user_id")["date"].\ 
  4.              apply(lambda x:datetime(2014,12,20) - x.sort_values().iloc[-1]).reset_index().\ 
  5.              rename(columns={"date":"recent"}) 
  6. recent_buy["recent"] = recent_buy["recent"].apply(lambda x: x.days) 
  7. recent_buy[:10] 
  8. # 購(gòu)買次數(shù)計(jì)算 
  9. buy_freq = df[df["behavior_type"]=="4"].groupby("user_id")["date"].count().reset_index().\ 
  10.           rename(columns={"date":"freq"}) 
  11. buy_freq[:10] 
  12. # 將上述兩列數(shù)據(jù),合并起來 
  13. rfm = pd.merge(recent_buy,buy_freq,on="user_id"
  14. rfm[:10] 
  15. # 給不同類型打分 
  16. r_bins = [0,5,10,15,20,50] 
  17. f_bins = [1,30,60,90,120,900] 
  18. rfm["r_score"] = pd.cut(rfm["recent"],bins=r_bins,labels=[5,4,3,2,1],right=False
  19. rfm["f_score"] = pd.cut(rfm["freq"],bins=f_bins,labels=[1,2,3,4,5],right=False
  20. for i in ["r_score","f_score"]: 
  21.     rfm[i] = rfm[i].astype(float
  22. rfm.describe() 
  23. # 比較各分值與各自均值的大小 
  24. rfm["r"] = np.where(rfm["r_score"]>3.943957,"高","低"
  25. rfm["f"] = np.where(rfm["f_score"]>1.133356,"高","低"
  26. # 將r和f列的字符串合并起來 
  27. rfm["value"] = rfm["r"].str[:] + rfm["f"].str[:] 
  28. rfm.head() 
  29. # 自定義函數(shù)給用戶貼標(biāo)簽 
  30. def trans_labels(x): 
  31.     if x == "高高"
  32.         return "重要價(jià)值客戶" 
  33.     elif x == "低高"
  34.         return "重要喚回客戶" 
  35.     elif x == "高低"
  36.         return "重要深耕客戶" 
  37.     else
  38.         return "重要挽回客戶" 
  39. rfm["標(biāo)簽"] = rfm["value"].apply(trans_labels) 
  40. # 計(jì)算出每個(gè)標(biāo)簽的用戶數(shù)量 
  41. rfm["標(biāo)簽"].value_counts() 

結(jié)果如下: 

Python:我的交易行為終于在分析1225萬條淘寶數(shù)據(jù),搞清楚了

 

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2020-11-16 08:37:16

MariaDB性能優(yōu)化

2018-06-26 14:42:10

StringJava數(shù)據(jù)

2021-09-01 09:32:40

工具

2022-11-16 14:02:44

2023-06-26 11:59:52

標(biāo)簽質(zhì)量梳理

2011-06-22 09:37:03

桌面虛擬化存儲(chǔ)

2020-12-02 09:36:09

處理器手機(jī)卡頓

2020-08-04 08:48:34

數(shù)據(jù)彈屏技術(shù)

2020-12-16 11:09:27

JavaScript語(yǔ)言開發(fā)

2020-12-31 07:57:25

JVM操作代碼

2020-04-11 11:21:22

留存分析模型分析

2021-09-21 16:18:07

手機(jī)電池快充

2020-10-27 08:24:45

阿里巴巴SLF4J

2017-08-15 08:27:48

云備份問題恢復(fù)

2020-12-24 15:18:27

大數(shù)據(jù)數(shù)據(jù)分析

2015-10-12 10:01:26

AndroidWindows應(yīng)用Windows 10

2018-06-20 10:43:58

云端霧端霧計(jì)算

2021-01-19 06:43:10

Netty框架網(wǎng)絡(luò)技術(shù)

2023-01-26 00:01:00

機(jī)器學(xué)習(xí)大腦活動(dòng)

2011-03-07 17:44:59

中小企業(yè)實(shí)施虛擬化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)