日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

利用Python群組分析方法剖析客戶行為

來源: 責編: 時間:2023-10-13 14:37:25 285觀看
導讀簡介如今,企業有能力收集大量的數據。這些數據可以幫助企業制定更好的策略并了解其客戶的行為。在這一點上,Cohort分析就發揮作用了。Cohort分析是一種了解客戶行為或用戶互動的強大工具,并為企業提供有價值的見解。在本

簡介

如今,企業有能力收集大量的數據。這些數據可以幫助企業制定更好的策略并了解其客戶的行為。在這一點上,Cohort分析就發揮作用了。Cohort分析是一種了解客戶行為或用戶互動的強大工具,并為企業提供有價值的見解。在本文中,將學習如何使用Python進行Cohort分析。Dw728資訊網——每日最新資訊28at.com

Cohort分析

Cohort分析是一種經常在市場營銷、客戶忠誠度、用戶體驗和產品開發等領域使用的數據分析技術。通過這種分析方法,我們可以詳細了解特定時期內人群或群體的行為。Cohort用于識別具有相似特征或經歷的人群或群體。Dw728資訊網——每日最新資訊28at.com

例如,對于電子商務業務,可以使用Cohort分析來監測不同的群體,比如客戶群體、來自特定地區的群體或偏好特定產品類別的群體。通過這種分析,我們可以研究特定群體在一段時間內的行為和傾向。Dw728資訊網——每日最新資訊28at.com

應用Cohort分析

本文有一個由12個表組成的關系數據庫。本文將在Python通過MS SQL從這個表中提取所需的特征。在進行必要的預處理操作后,本文將使數據適合進行分析。接下來從查看數據庫開始。Dw728資訊網——每日最新資訊28at.com

本文需要兩個特征。這兩個特征是客戶ID和訂單日期。本文的目標是查看我們能夠保留多少客戶,并在其首次到達日期后的每個月基礎上保留多長時間。Dw728資訊網——每日最新資訊28at.com

本文想要的特征包含在一個單獨的表中。因此,在查詢過程中,不需要從其他表中提取屬性。然而,為了舉例說明,假設本文將在兩個表上工作,接下來使用MS SQL中的JOIN獲取本文想要的特征。Dw728資訊網——每日最新資訊28at.com

SELECT * FROM ORDERS

圖片圖片Dw728資訊網——每日最新資訊28at.com

SELECT * FROM USERS

圖片圖片Dw728資訊網——每日最新資訊28at.com

SELECT U.ID, O.DATE_ FROM USERS U JOIN ORDERS O ON U.ID= O.ID

圖片圖片Dw728資訊網——每日最新資訊28at.com

本文通過JOIN從USERS和ORDERS表中調用具有相同ID值的屬性。現在,為了在Python中進行分析,本文將訪問該數據庫,在其中運行我們的查詢,并將數據作為數據幀在我們的操作中使用。Dw728資訊網——每日最新資訊28at.com

首先,導入本文所需要的庫。Dw728資訊網——每日最新資訊28at.com

import pandas as pdimport sqlalchemy as saimport urllibfrom datetime import datetime

在第二步中,本文使用urllib.parse.quote_plus函數來保護連接字符串免受環境因素的影響,并將連接信息寫入這個將用于連接SQL Server數據庫的字符串中。Dw728資訊網——每日最新資訊28at.com

params = urllib.parse.quote_plus("DRIVER={SQL Server};" "SERVER=DESKTOP-F3H252;" "DATABASE=E-COMMERCE;")

注:如果不知道服務器名稱,可以通過查詢"SELECT @@SERVERNAME"來找到它。Dw728資訊網——每日最新資訊28at.com

接下來,本文使用"SQLAlchemy (sa)"庫創建與SQL Server數據庫的連接。使用"sa.create_engine"函數,我們可以利用連接字符串和其他連接設置創建一個鏈接引擎。"odbc_connect"參數用于ODBC連接,并包含之前轉換的連接字符串。Dw728資訊網——每日最新資訊28at.com

engine = sa.create_engine("mssql+pyodbc:///?odbc_cnotallow={}".format(params))

在下一步中,本文將創建一個SQL查詢。我們使用查詢"SELECT U.ID, O.DATE_ FROM USERS U JOIN ORDERS O ON U.ID= O.ID"來獲取我們想要的特征。Dw728資訊網——每日最新資訊28at.com

qry ="SELECT U.ID, O.DATE_ FROM USERS U JOIN ORDERS O ON U.ID= O.ID"

我們通過"engine"對象建立數據庫連接,并在"with"代碼塊中使用該連接。這將自動關閉連接。我們使用"con.execute(qry)"運行SQL查詢并獲取結果集(rs)。最后,我們將結果集轉換為Pandas DataFrame。Dw728資訊網——每日最新資訊28at.com

with engine.connect() as con:    rs = con.execute(qry)    df = pd.DataFrame(rs)

圖片圖片Dw728資訊網——每日最新資訊28at.com

我們知道沒有缺失數據,但在這一點上,讓我們檢查并消除它。Dw728資訊網——每日最新資訊28at.com

df.isnull().sum()
ID 0DATE_ 0dtype: int64

由于我們將按月進行工作,所以小時數對我們來說并不重要,所以我們首先要刪除小時數,然后再刪除天數。首先,我們將日期列(DATE_)轉換為日期時間格式,然后只獲取日期。Dw728資訊網——每日最新資訊28at.com

df['DATE_'] = pd.to_datetime(df['DATE_'])df['DATE_'] = df['DATE_'].dt.date

圖片圖片Dw728資訊網——每日最新資訊28at.com

本文的下一步行動是刪除天數。接下來為此定義一個lambda函數。希望保留年份和月份的值。datetime(x.year, x.month, 1)將使用年份和月份信息創建一個新的日期對象,其中包含該月的第一天。Dw728資訊網——每日最新資訊28at.com

get_year_month = lambda x: datetime(x.year, x.month, 1)

接下來使用這個函數創建一個新的變量,并將新數據存儲在'DATE_MONTH'列中。Dw728資訊網——每日最新資訊28at.com

df['DATE_MONTH'] = df['DATE_'].apply(get_year_month)

現在,本文將根據客戶ID對要執行的流程進行分組,并通過創建'COHORT_MONTH'變量在這一列中保留每個客戶的首次到達日期。Dw728資訊網——每日最新資訊28at.com

user_first_date = df.groupby('ID')['DATE_MONTH']df['COHORT_MONTH'] = user_first_date.transform('min')

圖片圖片Dw728資訊網——每日最新資訊28at.com

當我們查看所獲得的值時,如果對第一個訂單日期和其他訂單日期進行評估,就可以很容易地找到差異。我們可以通過創建一個新的'COHORT_INDEX'變量,將差異保留在這一列中。Dw728資訊網——每日最新資訊28at.com

years_diff = df['DATE_MONTH'].dt.year - df['COHORT_MONTH'].dt.yearmonths_diff = df['DATE_MONTH'].dt.month -df['COHORT_MONTH'].dt.monthdf['COHORT_INDEX'] = years_diff * 12 + months_diff + 1

接下來計算每個首次到達日期的活躍客戶的月度數量。通過分組,本文創建了一個名為cohort_data的數據幀,其中包含了每個月首次到達的唯一客戶數量。Dw728資訊網——每日最新資訊28at.com

grouping_count = df.groupby(['COHORT_MONTH', 'COHORT_INDEX'])cohort_data = grouping_count['ID'].apply(pd.Series.nunique)cohort_data = cohort_data.reset_index()cohort_data.head()

圖片圖片Dw728資訊網——每日最新資訊28at.com

本文將cohort_data數據幀整理到數據透視表中,并創建一個名為cohort_user_counts的新數據幀。該數據幀將包含每個群體的月活躍客戶數量。Dw728資訊網——每日最新資訊28at.com

本文將計算每個客戶的活躍百分比。通過將每個月群體中的客戶數除以初始客戶數來實現此目的。Dw728資訊網——每日最新資訊28at.com

cohort_sizes = cohort_user_counts.iloc[:,0]retention = cohort_user_counts.divide(cohort_sizes, axis=0)retention.index = retention.index.strftime('%m-%Y')

圖片圖片Dw728資訊網——每日最新資訊28at.com

最后,本文將在熱圖上可視化retention數據幀。Dw728資訊網——每日最新資訊28at.com

sns.set(style = 'white')plt.figure(figsize = (15, 6))plt.title('Cohort: Retention rate by month')sns.heatmap(            retention            ,cmap = plt.cm.Reds            ,annot = True            ,fmt = '.0%'            )plt.xlabel("Ongoing months"plt.ylabel("First arrival date")plt.show()

圖片圖片Dw728資訊網——每日最新資訊28at.com

如上所述,圖表中的百分比表達的是活躍率。從中可以推斷出的內容應該回答了我們可以保留客戶多長時間的問題。Dw728資訊網——每日最新資訊28at.com

在這篇文章中,我們提到了Cohort分析,并制作了一個可以輕松使用的應用程序。Dw728資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-13337-0.html利用Python群組分析方法剖析客戶行為

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 性能工程實踐

下一篇: 如何解決Maven依賴沖突?

標簽:
  • 熱門焦點
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達到了中國第一,同時還表示小米電視的巨屏風暴即將開始。“公布一個好消息2023年#小米電視上半年出貨量中國
  • 石頭自清潔掃拖機器人G10S評測:多年黑科技集大成之作 懶人終極福音

    科技圈經常能看到一個詞叫“縫合怪”,用來形容那些把好多功能或者外觀結合在一起的產品,通常這樣的詞是貶義詞,但如果真的是產品縫合的好、縫合的實用的話,那它就成了中性詞,今
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • 自動化在DevOps中的力量:簡化軟件開發和交付

    自動化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動化工具和方法,DevOps團隊可以實現以下目標:消除手動和重復性任務。簡化流程。在整個軟件開發生命周期中實現更
  • 一個注解實現接口冪等,這樣才優雅!

    場景碼猿慢病云管理系統中其實高并發的場景不是很多,沒有必要每個接口都去考慮并發高的場景,比如添加住院患者的這個接口,具體的業務代碼就不貼了,業務偽代碼如下:圖片上述代碼有
  • “又被陳思誠騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國產懸疑電影,成了陳思誠的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠再度風頭無兩。你可以說陳思誠的
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預警不絕,但處于厄爾尼諾大“烤”之下的除了眾生,還有各大企業發布的ESG報告。ESG是“環境保
  • 攜眾多高端產品亮相ChinaJoy,小米帶來一場科技與人文的視聽盛宴

    7月28日,全球數字娛樂領域最具知名度與影響力的年度盛會中國國際數碼互動娛樂展覽會(簡稱ChinaJoy)在上海新國際博覽中心盛大開幕。作為全球領先的科
  • 支持aptX Lossless無損傳輸 iQOO TWS 1賽道版發布限時優惠價369元

    2023年7月4日,“無損音質,聲動人心”iQOO TWS 1正式發布,支持aptX Lossless無損傳輸,限時優惠價369元。iQOO TWS 1耳機率先支持端到端aptX Lossless無
Top 主站蜘蛛池模板: 承德县| 时尚| 延寿县| 峨眉山市| 营口市| 青浦区| 华容县| 台南县| 敦化市| 浠水县| 丹棱县| 治县。| 左云县| 阳城县| 米易县| 奎屯市| 台湾省| 通城县| 志丹县| 桃园县| 松江区| 永善县| 清原| 玛纳斯县| 朝阳县| 长顺县| 策勒县| 石阡县| 噶尔县| 霍城县| 乐都县| 黑水县| 阿克陶县| 扶余县| 辽宁省| 老河口市| 卫辉市| 玉溪市| 大姚县| 张家港市| 天镇县|