Python怎么解決新客人數(shù)、回購人數(shù)和總?cè)藬?shù)問題

今天小編給大家分享一下Python怎么解決新客人數(shù)、回購人數(shù)和總?cè)藬?shù)問題的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

為融水等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及融水網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、做網(wǎng)站、融水網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

讀取流水

saleflow= pd.read_csv('流水.csv',index_col=0)

Python怎么解決新客人數(shù)、回購人數(shù)和總?cè)藬?shù)問題

篩選出合生元益生菌的流水

#處理字段 yyp_saleflow=saleflow[saleflow['cls']=='營養(yǎng)品'] yyp_saleflow=saleflow[saleflow['custype']=='vip'] ysj_saleflow = yyp_saleflow[yyp_saleflow['cls2']=='益生菌'] ysj_saleflow['pinpai'] =ysj_saleflow.apply(pinpai_class_new,axis=1) # print('益生菌流水數(shù)', ysj_saleflow.shape[0]) ysj_saleflow= ysj_saleflow[ysj_saleflow['pinpai']=='合生元'] # print('合生元益生菌流水數(shù)', ysj_saleflow.shape[0])

求每個會員第一次購買合生元益生菌的時間,從而篩選出某個季度的新客

# 會員第一次購買益生菌的時間ysj_first =ysj_saleflow.groupby(['shopid_cardid']).oper_date.min().reset_index().rename(columns={'oper_date':'oper_date_first'})ysj_first['oper_date_first']=pd.to_datetime(ysj_first['oper_date_first'])  # 各個季度的新客ysj_new_Q1= ysj_first[(ysj_first['oper_date_first'] < pd.to_datetime('2020-04-01 00:00:00'))&(ysj_first['oper_date_first'] > pd.to_datetime('2020-01-01 00:00:00'))]ysj_new_Q3=  ysj_first[(ysj_first['oper_date_first'] < pd.to_datetime('2019-10-01 00:00:00'))&(ysj_first['oper_date_first'] > pd.to_datetime('2019-07-01 00:00:00'))]ysj_new_Q4 = ysj_first[(ysj_first['oper_date_first'] < pd.to_datetime('2020-01-01 00:00:00'))&(ysj_first['oper_date_first'] > pd.to_datetime('2019-10-01 00:00:00'))]

比如 Q3的新客有

這樣我們就有了各個季度的新客ID

再計算老客, 老客定義為第三季度和第二季度都買過合生元的會員,所有只用用第三季度的流水會員id和 第二季度的會員id  進行 inner join

ysj_saleflow2019=ysj_saleflow.query('year==2019')ysj_saleflow2019Q2_id=ysj_saleflow2019[ysj_saleflow2019.month.isin([4,5,6])][['shopid_cardid']]ysj_saleflow2019Q3_id=ysj_saleflow2019[ysj_saleflow2019.month.isin([7,8,9])][['shopid_cardid']]ysj_saleflow2019Q4_id=ysj_saleflow2019[ysj_saleflow2019.month.isin([10,11,12])][['shopid_cardid']]ysj_Q3_old_id= (ysj_saleflow2019Q2_id.merge(ysj_saleflow2019Q3_id)).drop_duplicates()

再計算 Q3 的新客有多少在Q4又購買了合生元益生菌, 即回購

思路是 拿Q4的會員id 與  Q3新客id inner join

#Q3 新客 在 年底回購人數(shù)Q3new_to_Q4 =(ysj_saleflow2019Q4_id.merge(ysj_new_Q3)).shopid_cardid.nunique()

最后計算人數(shù),并創(chuàng)建dataframe

# 新客人數(shù)Q3_new=ysj_new_Q3.shopid_cardid.nunique()# Q3 益生菌總?cè)藬?shù)Q3_YSJ_total= ysj_saleflow2019Q3_id.shopid_cardid.nunique()# 老客人數(shù)ysj_Q3_old_id= (ysj_saleflow2019Q2_id.merge(ysj_saleflow2019Q3_id)).drop_duplicates()Q3_old=ysj_Q3_old_id.shopid_cardid.nunique()#.reset_index() # Q3 老客人數(shù)#Q3 新客 在 年底回購人數(shù)Q3new_to_Q4 =(ysj_saleflow2019Q4_id.merge(ysj_new_Q3)).shopid_cardid.nunique()## 創(chuàng)建dataframedata = {'Q3益生菌總會員人數(shù)': [Q3_YSJ_total],       'Q3新客人數(shù)': [Q3_new],       'Q3老客人數(shù)': [Q3_old],       'Q3新客在年底回購的人數(shù)':[Q3new_to_Q4] ,     'shopId':[shopId]       }frame = pd.DataFrame(data, columns = ['Q3益生菌總?cè)藬?shù)', 'Q3新客人數(shù)', 'Q3老客人數(shù)', 'Q3新客在年底回購的人數(shù)','shopId'])

Python怎么解決新客人數(shù)、回購人數(shù)和總?cè)藬?shù)問題

這里只計算了一個連鎖,如果 計算多個連鎖, 可以對 連鎖列表進行循環(huán)

依次 df.append(). 具體做法是 在循環(huán)之前建立一個空的dataframe

df_empty =pd.DataFrame(columns=('Q3益生菌總會員人數(shù)','Q3新客人數(shù)','Q3老客人數(shù)','Q3新客在年底回購的人數(shù)','shopId'))

每循環(huán)一次 就讓df_empty 新增一個連鎖的數(shù)據(jù),即

df_empty=df_empty.append(frame,ignore_index=True)

偽代碼:

df_empty =pd.DataFrame(columns=('Q3益生菌總會員人數(shù)','Q3新客人數(shù)','Q3老客人數(shù)','Q3新客在年底回購的人數(shù)','shopId'))for  某一個連鎖  in    連鎖列表:       計算某個連鎖,得到frame
      df_empty= df_empty.append(frame, ignore_index=True)

以上就是“Python怎么解決新客人數(shù)、回購人數(shù)和總?cè)藬?shù)問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:Python怎么解決新客人數(shù)、回購人數(shù)和總?cè)藬?shù)問題
網(wǎng)站地址:http://muchs.cn/article14/ghsige.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站網(wǎng)站策劃、網(wǎng)站設(shè)計App開發(fā)、關(guān)鍵詞優(yōu)化、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司