日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

超市数据分析

發(fā)布時間:2023/12/10 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超市数据分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 業(yè)務(wù)背景

數(shù)據(jù)集來源于:kaggle數(shù)據(jù)集(鏈接),該數(shù)據(jù)集記錄了某全球超市四年的銷售數(shù)據(jù),通過分析該超市四年內(nèi)的銷售數(shù)據(jù),從不同角度出發(fā),分析經(jīng)營現(xiàn)狀,發(fā)掘提高銷量的銷售策略,利用數(shù)據(jù)找到新的增長點,并提出建議。

1.1 分析思路及指標(biāo)

1. 數(shù)據(jù)總覽 (Data Describe)

2. 數(shù)據(jù)預(yù)處理 (Data Preprocessing)

- 數(shù)據(jù)類型轉(zhuǎn)換 - 空值、缺失值、異常值處理

3. 數(shù)據(jù)分析 (Data Analysis)

4. 模型構(gòu)建 (Bulid Model)

- RFM 用戶價值模型 - Kmeans 機(jī)器學(xué)習(xí)模型

5. 模型評估 (Evaluate)

- TSNE降維可視化

6. 結(jié)論建議 (Conclusion)

2 數(shù)據(jù)加載與清洗

2.1 載入數(shù)據(jù)分析庫及數(shù)據(jù)

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warningssns.set(style='white') sns.set_context('notebook', font_scale=1.5, rc={'lines.linewidth':2.5,'figure.figsize':(17, 10)}) large = 22; med = 16; small = 12 params = {'axes.titlesize': large,'legend.fontsize': med,'figure.figsize': (16, 10),'axes.labelsize': med,'xtick.labelsize': med,'ytick.labelsize': med,'figure.titlesize': large} plt.rcParams.update(params) plt.rcParams['figure.figsize'] = (17, 10) plt.rcParams["font.family"] = 'SimHei' plt.rcParams["axes.unicode_minus"] = False warnings.filterwarnings("ignore") df = pd.read_csv('./superstore_dataset2011-2015.csv',encoding='ISO-8859-1') df.head().append(df.tail()) Row IDOrder IDOrder DateShip DateShip ModeCustomer IDCustomer NameSegmentCityState...Product IDCategorySub-CategoryProduct NameSalesQuantityDiscountProfitShipping CostOrder Priority012345128551286512875128851289
42433AG-2011-20401/1/20116/1/2011Standard ClassTB-11280Toby BraunhardtConsumerConstantineConstantine...OFF-TEN-10000025Office SuppliesStorageTenex Lockers, Blue408.30020.0106.140035.46Medium
22253IN-2011-478831/1/20118/1/2011Standard ClassJH-15985Joseph HoltConsumerWagga WaggaNew South Wales...OFF-SU-10000618Office SuppliesSuppliesAcme Trimmer, High Speed120.36630.136.03609.72Medium
48883HU-2011-12201/1/20115/1/2011Second ClassAT-735Annie ThurmanConsumerBudapestBudapest...OFF-TEN-10001585Office SuppliesStorageTenex Box, Single Width66.12040.029.64008.17High
11731IT-2011-36476321/1/20115/1/2011Second ClassEM-14140Eugene MorenHome OfficeStockholmStockholm...OFF-PA-10001492Office SuppliesPaperEnermax Note Cards, Premium44.86530.5-26.05504.82High
22255IN-2011-478831/1/20118/1/2011Standard ClassJH-15985Joseph HoltConsumerWagga WaggaNew South Wales...FUR-FU-10003447FurnitureFurnishingsEldon Light Bulb, Duo Pack113.67050.137.77004.70Medium
32593CA-2014-11542731-12-20144/1/2015Standard ClassEB-13975Erica BernCorporateFairfieldCalifornia...OFF-BI-10002103Office SuppliesBindersCardinal Slant-D Ring Binder, Heavy Gauge Vinyl13.90420.24.51880.89Medium
47594MO-2014-256031-12-20145/1/2015Standard ClassLP-7095Liz PreisConsumerAgadirSouss-Massa-Draa...OFF-WIL-10001069Office SuppliesBindersWilson Jones Hole Reinforcements, Clear3.99010.00.42000.49Medium
8857MX-2014-11052731-12-20142/1/2015Second ClassCM-12190Charlotte MeltonConsumerManaguaManagua...OFF-LA-10004182Office SuppliesLabelsHon Color Coded Labels, 5000 Label Set26.40030.012.36000.35Medium
6852MX-2014-11478331-12-20146/1/2015Standard ClassTD-20995Tamara DahlenConsumerJuárezChihuahua...OFF-LA-10000413Office SuppliesLabelsHon Legal Exhibit Labels, Alphabetical7.12010.00.56000.20Medium
36388CA-2014-15672031-12-20144/1/2015Standard ClassJM-15580Jill MatthiasConsumerLovelandColorado...OFF-FA-10003472Office SuppliesFastenersBagged Rubber Bands3.02430.2-0.60480.17Medium

10 rows × 24 columns

2.2 總覽數(shù)據(jù)

數(shù)據(jù)維度有點多,顯示不全,先轉(zhuǎn)置看看各個維度的數(shù)據(jù)大概長什么樣

df[-5:].T 5128551286512875128851289Row IDOrder IDOrder DateShip DateShip ModeCustomer IDCustomer NameSegmentCityStateCountryPostal CodeMarketRegionProduct IDCategorySub-CategoryProduct NameSalesQuantityDiscountProfitShipping CostOrder Priority
32593475948857685236388
CA-2014-115427MO-2014-2560MX-2014-110527MX-2014-114783CA-2014-156720
31-12-201431-12-201431-12-201431-12-201431-12-2014
4/1/20155/1/20152/1/20156/1/20154/1/2015
Standard ClassStandard ClassSecond ClassStandard ClassStandard Class
EB-13975LP-7095CM-12190TD-20995JM-15580
Erica BernLiz PreisCharlotte MeltonTamara DahlenJill Matthias
CorporateConsumerConsumerConsumerConsumer
FairfieldAgadirManaguaJuárezLoveland
CaliforniaSouss-Massa-DraaManaguaChihuahuaColorado
United StatesMoroccoNicaraguaMexicoUnited States
94533NaNNaNNaN80538
USAfricaLATAMLATAMUS
WestAfricaCentralNorthWest
OFF-BI-10002103OFF-WIL-10001069OFF-LA-10004182OFF-LA-10000413OFF-FA-10003472
Office SuppliesOffice SuppliesOffice SuppliesOffice SuppliesOffice Supplies
BindersBindersLabelsLabelsFasteners
Cardinal Slant-D Ring Binder, Heavy Gauge VinylWilson Jones Hole Reinforcements, ClearHon Color Coded Labels, 5000 Label SetHon Legal Exhibit Labels, AlphabeticalBagged Rubber Bands
13.9043.9926.47.123.024
21313
0.20000.2
4.51880.4212.360.56-0.6048
0.890.490.350.20.17
MediumMediumMediumMediumMedium
df.columns Index(['Row ID', 'Order ID', 'Order Date', 'Ship Date', 'Ship Mode','Customer ID', 'Customer Name', 'Segment', 'City', 'State', 'Country','Postal Code', 'Market', 'Region', 'Product ID', 'Category','Sub-Category', 'Product Name', 'Sales', 'Quantity', 'Discount','Profit', 'Shipping Cost', 'Order Priority'],dtype='object')
  • 各維度分別為:行編號、訂單編號、訂購日期、發(fā)貨日期、運送方式、客戶ID、客戶姓名、客戶類型、客戶城市、客戶所在州、客戶國家、郵編、店鋪所在區(qū)域、店鋪所屬州、產(chǎn)品ID、類別、子類別、產(chǎn)品名稱、銷售額、銷售量、折扣、利潤、運輸費、訂單優(yōu)先級 共24個維度
  • 行編號無用,直接刪除
del df['Row ID'] df.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 51290 entries, 0 to 51289 Data columns (total 23 columns):# Column Non-Null Count Dtype --- ------ -------------- ----- 0 Order ID 51290 non-null object 1 Order Date 51290 non-null object 2 Ship Date 51290 non-null object 3 Ship Mode 51290 non-null object 4 Customer ID 51290 non-null object 5 Customer Name 51290 non-null object 6 Segment 51290 non-null object 7 City 51290 non-null object 8 State 51290 non-null object 9 Country 51290 non-null object 10 Postal Code 9994 non-null float6411 Market 51290 non-null object 12 Region 51290 non-null object 13 Product ID 51290 non-null object 14 Category 51290 non-null object 15 Sub-Category 51290 non-null object 16 Product Name 51290 non-null object 17 Sales 51290 non-null float6418 Quantity 51290 non-null int64 19 Discount 51290 non-null float6420 Profit 51290 non-null float6421 Shipping Cost 51290 non-null float6422 Order Priority 51290 non-null object dtypes: float64(5), int64(1), object(17) memory usage: 9.0+ MB

2.3 查詢、處理空值

print('郵編缺失數(shù)據(jù)占比: {:.2%}'.format(df['Postal Code'].isnull().sum() / len(df))) 郵編缺失數(shù)據(jù)占比: 80.51%

郵編一欄缺失數(shù)據(jù)超過80%,又因為郵編對數(shù)據(jù)幾乎無影響,采取措施為直接刪除此列

del df['Postal Code']

2.4 查詢重復(fù)記錄

df.duplicated().sum() 0

無重復(fù)記錄

2.5 更改數(shù)據(jù)類型,并創(chuàng)建時間維度字段

# 將訂單日期更改為日期格式 df['Order Date']=pd.to_datetime(df['Order Date'])# 添加年和月的列,便于后續(xù)進(jìn)行時間維度的分析 df['year'] = df['Order Date'].dt.year df['month'] = df['Order Date'].dt.month

3 經(jīng)營分析

3.1 銷售額分析

# 創(chuàng)建銷售額透視表 sales = pd.pivot_table(df, values='Sales', index='month', columns='year',aggfunc=[np.sum]) sales.columns = ['2011年','2012年','2013年','2014年'] sales.index=['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] sales 2011年2012年2013年2014年1月2月3月4月5月6月7月8月9月10月11月12月
138241.30042162800.89338206459.19582268265.52240
134969.94086152661.15144191062.77216244159.30486
171455.59372201608.72784230547.79468347720.96868
128833.47034187469.96192233181.34844302132.54000
148146.72092218960.16042304509.96336304798.83604
189338.43966249289.77172341162.34370372577.23298
162034.69756174394.02808223642.65664278672.17326
219223.49524271669.66086323876.60716432731.04194
255237.89698256567.85308326897.27044405436.70584
204675.07846239321.09904270121.87570406659.41500
214934.29386270723.05356383039.21248508954.73156
292359.96752291972.33306371245.40880427757.39800

3.1.1 時間維度銷售額

3.1.1.1 年度銷售額及增長率

rise_12 = (sales.sum()[1]-sales.sum()[0])/sales.sum()[0] rise_13 = (sales.sum()[2]-sales.sum()[1])/sales.sum()[1] rise_14 = (sales.sum()[3]-sales.sum()[2])/sales.sum()[2] rise_rate = [0, rise_12, rise_13, rise_14]sales_sum=pd.DataFrame({'Sales_sum':sales.sum()}) sales_sum['rise_rate'] = rise_rate sales_sum.index=pd.Series(['2011年','2012年','2013年','2014年']) sales_sum Sales_sumrise_rate2011年2012年2013年2014年
2.259451e+060.000000
2.677439e+060.184995
3.405746e+060.272017
4.299866e+060.262533
x1 = x2 = sales_sum.index y1 = sales_sum.Sales_sum y2 = sales_sum.rise_rate# 建立左側(cè)縱坐標(biāo)畫板 fig, ax1 = plt.subplots() # 畫柱狀圖 bar = ax1.bar(x1, y1, alpha=0.8, label = '銷售額') # 顯示左側(cè)縱坐標(biāo) ax1.set_ylabel('銷售額', fontsize=20) plt.yticks(range(0,5500000,500000),('0','50W','100W','150W','200W','250W','300W','350W','400W','450W')) ax1.legend(bar, ("銷售額",), loc = [0.05, 0.9]) plt.tick_params(labelsize=14)# 建立右側(cè)坐標(biāo)畫板 ax2 = ax1.twinx() # 畫折線圖 line = ax2.plot(x2, y2, marker='o' ,c='y') # 折線圖顯示標(biāo)識 for a, b in zip(x2, y2): ax2.text(a, b, "%.2f" % (100 * b) + '%', ha='center', fontsize=20) ax2.set_ylabel('增長率', fontsize=20, rotation=270) ax2.legend(line, ('增長率',), loc = [0.05, 0.85]) plt.tick_params(labelsize=14) ax2.set_title("年度銷售額及其增長率", fontsize=22);

從年度銷售額及其增長率來看:

  • 該超市2011年銷售額只有226萬,2014年銷售額達(dá)到了430萬,GMV提升非常快,從行業(yè)發(fā)展階段來看,該超市應(yīng)該處于導(dǎo)入期或成長期
  • 該超市主營辦公用品,據(jù)了解,全球領(lǐng)先的辦公用品供應(yīng)商包括:Costco、Office Depot、Staples、Tesco和沃爾瑪,查詢沃爾瑪2014年銷售額得知,沃爾瑪2014年銷售額為4731億美元,可見與全球大型超市對比,差距大,可提升空間較大
  • 從增長率來看,增長率非常高,12-13年、13-14年GMV增長率接近均超過25%,而沃爾瑪2013-2014的增長率大概為3%,可見該超市潛力非常大
  • 了解了超市整體銷售額后,再對每年每月的銷售額進(jìn)行分析,了解不同月份的銷售情況,找出是否有淡旺季之分,找出重點銷售月份,以便制定經(jīng)營策略與業(yè)績的月度及季度指標(biāo)拆分

3.1.1.2 月度銷售額

sales.plot.area(colormap = 'tab20c', stacked=False) plt.title('月度銷售額') plt.ylabel('銷售額') plt.xlabel('月份');

通過不同年份月度銷售額我們可以看出:

  • 該超市2011年-2014年每一年的銷售額同比上一年都是上升趨勢,銷售季節(jié)性明顯,總體上半年是淡季,下半年是旺季
  • 上半年中6月份銷售額比較高,下半年中7月份的銷售額偏低。對于旺季的月份,運營推廣等策略要繼續(xù)維持,還可以加大投入,提高整體銷售額;對于淡季的月份,可以結(jié)合產(chǎn)品特點進(jìn)行新產(chǎn)品拓展,舉辦一些促銷活動等吸引客戶

3.2 利潤分析

# 創(chuàng)建利潤透視表 profit = pd.pivot_table(df, values='Profit', index='month', columns='year',aggfunc=[np.sum]) profit.columns = ['2011年','2012年','2013年','2014年'] profit.index=['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] profit 2011年2012年2013年2014年1月2月3月4月5月6月7月8月9月10月11月12月
13457.2330219627.4205826052.4025231447.74660
17588.8372617828.1824431553.9975629454.01876
16169.3606222752.8768434873.7193850097.04458
13405.4692420804.0053226008.0514435709.53320
14777.4579222865.3957239053.3094634335.60404
25932.8779634358.0396243298.8500040869.02108
10631.8440621725.1880827019.9129426450.70856
19650.6712436511.4499632977.7557646443.47934
32313.2545825039.9349818850.0908452533.83284
30745.5416627773.8745427871.9747052342.49740
21261.4053626160.6068651720.8856855561.72406
33006.8586231968.3041647654.2799048920.76000

3.2.1 時間維度利潤情況

3.2.1.1 年度利潤、增長率、利潤率

# 計算利潤增長率 rise_12 = (profit.sum()[1] - profit.sum()[0]) / profit.sum()[0] rise_13 = (profit.sum()[2] - profit.sum()[1]) / profit.sum()[1] rise_14 = (profit.sum()[3] - profit.sum()[2]) / profit.sum()[2] rise_rate = [0, rise_12, rise_13, rise_14]# 計算每年的利潤率 rate_11 = profit.sum()[0] / sales.sum()[0] rate_12 = profit.sum()[1] / sales.sum()[1] rate_13 = profit.sum()[2] / sales.sum()[2] rate_14 = profit.sum()[3] / sales.sum()[3] profit_rate = [rate_11, rate_12, rate_13, rate_14]profit_sum = pd.DataFrame({'Profit_sum': profit.sum()}) profit_sum['rise_rate'] = rise_rate profit_sum['profit_rate'] = profit_rate profit_sum.index = pd.Series(['2011年', '2012年', '2013年', '2014年']) profit_sum Profit_sumrise_rateprofit_rate2011年2012年2013年2014年
248940.811540.0000000.110178
307415.279100.2348930.114817
406935.230180.3237310.119485
504165.970460.2389340.117252
# 建立左側(cè)縱坐標(biāo)畫板 fig, ax1 = plt.subplots() # 畫堆疊圖 s = plt.bar(sales_sum.index,sales_sum.Sales_sum, alpha=0.5, label='銷售額') p = plt.bar(profit_sum.index, profit_sum.Profit_sum,color='b' ,alpha=0.8, label='利潤') # 顯示左側(cè)縱坐標(biāo) ax1.set_ylabel('銷售額', fontsize=20) plt.yticks(range(0,5500000,500000),('0','50W','100W','150W','200W','250W','300W','350W','400W','450W')) # 顯示文字 for x1,y1 in zip(profit_sum.index, profit_sum.profit_rate):plt.text(x1, y1+20000, '%.2f%%'% (y1*100), ha='center', color='w',fontsize=20) plt.legend() # 建立右側(cè)坐標(biāo)畫板 ax2 = ax1.twinx() # # 畫折線圖 line = ax2.plot(profit_sum.index, profit_sum.rise_rate, marker='o' ,c='y',ms=10) # # 折線圖顯示標(biāo)識 for a, b in zip(profit_sum.index, profit_sum.rise_rate): ax2.text(a, b, "%.2f" % (100 * b) + '%', ha='center', fontsize=20) ax2.set_ylabel('利潤增長率', fontsize=20, rotation=270) ax2.set_title("年度利潤占比及其增長率", fontsize=22) ax2.legend(line, ('利潤增長率',), loc = [0.007, 0.89]);

從各年度利潤及利潤增長率可以看出:

  • 利潤是在逐年遞增,利潤率平穩(wěn)位置在11%-12%之間,說明超市的經(jīng)營策略比較完善,價格波動不大
  • 除了13-14年利潤增長率小于銷售額增長率,其他時間利潤增長率均超過銷售額增長率,可見13-14季度存在一些讓利策略來增加銷售額

3.2.1.2 每月利潤的同比增長率

rise_2=pd.DataFrame() rise_2['rise_2012']=(profit['2012年']-profit['2011年']) / profit['2011年'] rise_2['rise_2013']=(profit['2013年']-profit['2012年']) / profit['2012年'] rise_2['rise_2014']=(profit['2014年']-profit['2013年']) / profit['2013年'] rise_2 rise_2012rise_2013rise_20141月2月3月4月5月6月7月8月9月10月11月12月
0.4585030.3273470.207096
0.0136080.769894-0.066552
0.4071600.5327170.436527
0.5519040.2501460.373018
0.5473160.707966-0.120802
0.3248830.260225-0.056118
1.0434070.243714-0.021066
0.858026-0.0967830.408327
-0.225088-0.2471991.786927
-0.0966540.0035320.877962
0.2304270.9770520.074261
-0.0314650.4906730.026576
plt.plot(rise_2.index, rise_2.rise_2012,linewidth=5, marker='o',ms=15,label='2012年同比增長') plt.plot(rise_2.index, rise_2.rise_2013,linewidth=5, marker='o',ms=15,label='2013年同比增長') plt.plot(rise_2.index, rise_2.rise_2014,linewidth=5, marker='o',ms=15,label='2014年同比增長') plt.ylabel('增長率') plt.title('每年不同月份利潤同比增長率') plt.legend(loc='upper left');

從每一年不同月份的利潤同比增長率來看:

  • 整體來看,利潤同比波動較大,存在不少負(fù)增長的情況,說明該超市處于導(dǎo)入期和成長期的概率較大,注重用戶體量,整體規(guī)模的擴(kuò)大,并不是非常重視盈利情況,這與公司的發(fā)展階段和戰(zhàn)略布局有關(guān),比如我國的京東,毛利率就不高,去掉運營費用,管理費用,履約費用等,利潤率常年負(fù)數(shù),但依然能夠發(fā)展壯大

3.2.2 每單利潤

def boxplot(x, y, **kwargs):sns.boxplot(x=x, y=y)m = pd.melt(df, id_vars=['Profit'], value_vars=['Market','Category']) g = sns.FacetGrid(m, col='variable', col_wrap=2, sharex=False, sharey=False, size=5) g = g.map(boxplot, 'value', 'Profit')

print('虧損單占比: {:.2%}'.format(df[df['Profit'] < 0].shape[0] / len(df))) 虧損單占比: 24.46%

從每單利潤情況來看:

  • 每單利潤非常離散,盈利單與虧損單相差不大,可見該超市經(jīng)常會進(jìn)行促銷活動
  • Canada銷售額不高,但幾乎沒有負(fù)利潤的訂單
  • 虧損訂單占了接近1/4,虧損嚴(yán)重,后續(xù)對商品維度和折扣情況進(jìn)行分析,從而改善負(fù)利潤訂單情況

3.2.3 不同商品銷售額與利潤

# 創(chuàng)建不同商品銷售額與利潤情況 cg_s_p = df.groupby(['Category','Sub-Category'])['Sales','Profit'].sum()sortIndex = np.argsort(cg_s_p.Sales) # 倒序,返回排序后各數(shù)據(jù)的原始下標(biāo) x_sort = cg_s_p.index[sortIndex] # 重新進(jìn)行排序,與y保持初始順序一致 y_sort = cg_s_p.Sales[sortIndex] # 重新進(jìn)行排序,倒序 y_sort2 = cg_s_p.Profit[sortIndex]rects1=plt.barh(np.arange(len(x_sort)), width=y_sort,height=0.35,alpha=0.8,label='銷售額') rects2=plt.barh(np.arange(len(x_sort)) - 0.35, width=y_sort2, height=0.35, label='利潤',alpha=0.8) plt.yticks(np.arange(len(x_sort)), x_sort, fontsize=14) plt.legend() plt.title('不同商品的銷售額與利潤',size=30)def add_labels(rects):for rect in rects:width = rect.get_width()plt.text(width+30000, rect.get_y(), '%d' % (width/1000) + 'K', ha='center',size=14)add_labels(rects1) add_labels(rects2)

df[df['Sub-Category'].isin(['Phones','Copiers','Chairs','Bookcases','Storage','Appliances','Machines','Accessories','Tables'])].Sales.sum() / df.Sales.sum() 0.8390747077198337

從不同商品銷售額與利潤可以看出:

  • furniture(家具類)中Bookcases(書柜)、Chairs(椅子)、Tables(桌子);Office supplies(辦公用品)中Appliances(電器)、Storage(儲藏箱);Technology(技術(shù)類)中Accessories(附件)、Copiers(復(fù)印機(jī))、Machines(機(jī)器)、Phones(電話),是銷售額最好的產(chǎn)品,這幾類產(chǎn)品占了銷售額總額的84%。這是該超市的主營產(chǎn)品類別,可以制定一些戰(zhàn)略來提高我們超市在顧客心智中對這幾類產(chǎn)品的認(rèn)知,提高這幾類商品就能想到我們超市,從而提高我們的品牌影響力
  • 銷售額較少的幾類產(chǎn)品,inders(粘合劑)、Furnishings(家具)、Art(藝術(shù)品)、Paper(紙)、Supplies(供應(yīng)品)、Envelopes(信封)、Fasteners(緊固件)、Labels(標(biāo)簽)均是辦公用品中的小物件,可以探索顧客購買商品的連帶關(guān)系,進(jìn)行組合銷售優(yōu)化
  • Tales(桌子)是唯一負(fù)利潤的產(chǎn)品,出現(xiàn)此狀況的原因可能是清理庫存或者是市場競爭大,需要結(jié)合實際業(yè)務(wù)來進(jìn)行分析,改善此商品結(jié)構(gòu)及經(jīng)營策略

3.2.4 地域維度銷售額與利潤對比

從最開始的數(shù)據(jù)集信息可以知道,這是一所全球超市,在全球7個地方有分店,那么再來看一下不同分店的銷售額和利潤占比,以便對不同分店采取對應(yīng)的經(jīng)營策略(這里為了方便對比展示,使用tableau儀表盤)

從以上圖表可以看出

  • 每家market總體每年銷售額均處于上升趨勢,其中APAC(亞太地區(qū))、EU(歐盟)、US(美國)、LATAM(拉丁美洲)的market占到了總銷售額的85%,總體也與地區(qū)的經(jīng)濟(jì)發(fā)展相匹配
  • 在APAC地區(qū)和EU地區(qū)的增長速度比較快速,可以看出市場占有能力在不斷增加,企業(yè)市場前景比較好,下一年可以適當(dāng)加大運營成本,其他地區(qū)可以根據(jù)自身地區(qū)消費特點,借鑒上面APAC和EU地區(qū)的運營模式
  • 通過銷售額與利潤占比來看,US、APAC、EU、Canada的利潤情況較好,其余地區(qū)利潤率較低,利潤低的地區(qū)可能折扣讓利幅度較大,后續(xù)分析地域維度對折扣的敏感度

3.3 效率指標(biāo)

3.3.1 客單價

客單價是指商場(超市)每一個顧客平均購買商品的金額,客單價也即是平均交易金額。從某種程度上反映了企業(yè)的消費群體的許多特點以及企業(yè)的銷售類目的盈利狀態(tài)是否健康。

總消費次數(shù):同一天內(nèi),同一個人發(fā)生的所有消費算作一次消費。

客單價=總消費金額 / 總消費次數(shù)

# 2011-2014年客單價 for i in range(2011,2015):data=df[df['year']==i]price=data[['Order Date','Customer ID','Sales']]# 計算總消費次數(shù)price_dr=price.drop_duplicates(subset=['Order Date', 'Customer ID'])# 總消費次數(shù):有多少行total_num=price_dr.shape[0]print(f'{i}年總消費次數(shù)=',total_num)unit_price = price['Sales'].sum()/total_numprint(f'{i}年客單價=', unit_price,'\n') 2011年總消費次數(shù)= 4453 2011年客單價= 507.3997070604087 2012年總消費次數(shù)= 5392 2012年客單價= 496.55762136498515 2013年總消費次數(shù)= 6753 2013年客單價= 504.3308824788983 2014年總消費次數(shù)= 8696 2014年客單價= 494.4647965225392
  • 每年的消費次數(shù)呈不斷上升趨勢,但是客單價總體浮動范圍不是很大 ,穩(wěn)定在500左右
  • 如果想要提高客單件的,可以在促銷時,贈送顧客一些滿399才能使用的一些折扣券,讓顧客多購買一些商品是常用的策略
  • 提高客單價的另一個方式是增加單個訂單內(nèi)商品的數(shù)量,但考慮到該超市主要商品類型是辦公用品類型的,商品消耗周期較長,可操作性不大,唯一可操的就是設(shè)置購買商品數(shù)量越多,折扣越大,從而降低商品的單價,增加顧客購買更多件商品的欲望

3.3.2 不同市場連帶率分布

# 每條記錄是一種類別的商品,但是探索發(fā)現(xiàn),存在同一訂單,購買了多個種類的商品,先通過訂單號聚合,再計算訂單中商品的總數(shù) order_together = df.groupby(['Order ID']).Quantity.sum().reset_index().merge(df[['Order Date','Order ID','Market']]).drop_duplicates() order_together.to_csv('order_together.csv') # 這里使用tableau展示

  • 總體來看,EU地區(qū)的連帶率最高,2014年連帶率超過9件,APAC、LATAM、US地區(qū)表現(xiàn)較好,Afica、EMEA、Canada地區(qū)連帶率差,均在5件左右
  • 4年來各地區(qū)連帶率波動較為平穩(wěn),表現(xiàn)突出的是EU和Canada,這兩地連帶率有增長趨勢,其他地區(qū)可以借鑒這兩地的運營策略,如使用組合推薦等方式來提高連帶率,從而提高我們的整體銷售額

3.4 促銷活動分析

# 定義折扣等級,便于后續(xù)分析不同折扣帶來的銷售額和利潤 bins=[-0.01,0.01,0.2,0.5,1] df['discount_level'] = pd.cut(df.Discount, bins=bins, labels=['無折扣','低折扣','中折扣','高折扣'])# 創(chuàng)建不同折扣等級的銷售額,利潤DataFrame dis_s_p = df.groupby('discount_level')['Sales','Profit'].sum() dis_s_p SalesProfitdiscount_level無折扣低折扣中折扣高折扣
7.253807e+061.828672e+06
3.458485e+064.534675e+05
1.558586e+06-4.021004e+05
3.716247e+05-4.125817e+05

3.4.1 不同折扣等級訂單的銷售額與利潤

index = np.arange(dis_s_p.shape[0]) rects1=plt.bar(x=index, height=dis_s_p.Sales, width=0.35, label='銷售額',alpha=0.8) rects2=plt.bar(x=index + 0.35, height=dis_s_p.Profit, width=0.35, label='利潤',alpha=0.8) plt.xticks(index +0.175, dis_s_p.index) plt.legend() plt.title('不同折扣等級訂單的銷售額與利潤')def add_labels(rects):for rect in rects:height = rect.get_height()plt.text(rect.get_x() + rect.get_width() / 2, height, '%d' % (height/10000) + 'W', ha='center', va='bottom',size=16)add_labels(rects1) add_labels(rects2)

3.4.2 不同地區(qū)對折扣的敏感度

sns.barplot(x='Market', y='Sales', data=df, hue='discount_level',estimator=np.sum,alpha=0.8) plt.legend(loc='upper right') plt.title('不同市場不同折扣等級訂單銷售額');

從上面兩張圖可以看出:

  • 經(jīng)過計算,對于無折扣訂單,利潤大約是銷售額的25%,低折扣訂單利潤大約是銷售額的13%,而折扣力度在0.2-0.5之間的訂單,已經(jīng)是負(fù)利潤了,超過0.5折扣比例的訂單,幾乎是銷售額多少,就虧損多少
  • 高折扣的訂單可能是因為商品積壓導(dǎo)致貶值,被迫虧本甩賣,應(yīng)及時對商品結(jié)構(gòu)進(jìn)行診斷,對于難銷售,易積壓的商品,及時調(diào)整進(jìn)貨策略
  • 看不同地區(qū)對于折扣的敏感度可以看出,優(yōu)質(zhì)地區(qū)為APAC、EU、US、LATAM,而在Canada我們沒有促銷活動,Africa和EMEA占比最大的是無折扣,可能因為商品的剛需所導(dǎo)致,而低折扣和中折扣幾乎的訂單幾乎沒有,只有高折扣的訂單,才能吸引到他們下單,由于高折扣訂單虧損嚴(yán)重,應(yīng)及時進(jìn)行戰(zhàn)略調(diào)整

4 用戶分析

4.1 用戶質(zhì)量

4.1.1 用戶生命周期

用戶生命周期(Life Time),也稱作留存天數(shù),從用戶第一次購買,到最后一次購買的天數(shù)

# 計算用戶第一次和最后一次消費時間 order_min = df.groupby('Customer ID')['Order Date'].min() order_max = df.groupby('Customer ID')['Order Date'].max() (order_max - order_min).mean() Timedelta('1158 days 15:55:28.301886')

用戶的平均生命周期是1158天,即平均每個用戶最后一次購買時間與第一次購買時間的差值是1158天

# 用戶生命周期直方圖分布 ((order_max - order_min)/np.timedelta64(1,'D')).hist(bins=50,alpha=0.8);

  • 總體來看,該超市用戶的粘性較大,4年的統(tǒng)計周期內(nèi),大部分用戶的生命周期是1200天至1500天,根據(jù)此情況,我們可以在客戶消費后3年左右對其進(jìn)行引導(dǎo),促使其再次消費并形成消費習(xí)慣
  • 另外針對不同階段的用戶,采取針對性的運營策略,從而延長用戶的生命周期,并且盡可能讓用戶產(chǎn)生商業(yè)價值

4.1.2 時間維度新增顧客數(shù)量

根據(jù)Customer ID列數(shù)據(jù)進(jìn)行重復(fù)值的刪除,保證數(shù)據(jù)集中所有的客戶ID都是唯一的,然后使用透視表對數(shù)據(jù)進(jìn)行整理。

data = df.drop_duplicates(subset=['Customer ID']) new_consumer = data.groupby(by=['year','month']).size().reset_index().rename(columns={0:"count"}) sns.factorplot(x='month',y='count',data=new_consumer,hue='year',size=10,aspect=1.3) plt.title('每年新顧客數(shù)量');

從2011年到2014年總體來看

  • 每一年的新增客戶數(shù)是逐年減少的趨勢,可以看出該超市對保持老用戶是有效的,超市的運營狀況較為穩(wěn)定,但新客戶獲取率比較低,可以不定期的進(jìn)行主動推廣營銷,從而增加新客戶數(shù)。

4.1.3 復(fù)購率

# 每一條記錄是一個種類的商品,但是一個訂單可能包含多條記錄,由于計算復(fù)購不涉及商品信息,將一個訂單包含多件商品的記錄值保留一條 data = df.drop_duplicates(subset='Order ID') data['year_month'] = data['Order Date'].values.astype('datetime64[M]') pivoted=data.pivot_table(index='Customer ID',columns='year_month',values='Order Date',aggfunc='count').fillna(0) pivoted year_month2011-01-012011-02-012011-03-012011-04-012011-05-012011-06-012011-07-012011-08-012011-09-012011-10-01...2014-03-012014-04-012014-05-012014-06-012014-07-012014-08-012014-09-012014-10-012014-11-012014-12-01Customer IDAA-10315AA-10375AA-10480AA-10645AA-315...YS-21880ZC-11910ZC-21910ZD-11925ZD-21925
0.00.01.01.00.00.00.00.01.00.0...0.01.00.02.01.01.00.00.00.02.0
0.00.00.01.00.00.01.00.00.01.0...0.00.00.00.00.02.00.01.01.02.0
1.00.01.01.00.01.00.01.00.00.0...1.02.01.00.00.01.01.00.00.00.0
2.00.00.01.00.01.01.00.00.00.0...1.01.00.03.00.00.00.03.01.01.0
0.00.00.00.00.00.00.01.00.00.0...0.00.01.00.01.00.00.00.00.00.0
...............................................................
1.00.00.00.00.00.00.00.00.01.0...0.02.00.01.00.02.00.00.00.02.0
0.00.00.00.00.00.00.00.00.00.0...0.00.00.01.00.00.00.00.00.00.0
0.00.00.00.00.00.00.00.01.02.0...0.00.01.02.02.01.00.01.02.05.0
0.00.00.00.00.00.01.00.00.00.0...1.00.00.00.00.00.00.00.00.01.0
0.01.00.00.01.00.00.01.01.00.0...0.00.00.01.00.00.00.00.00.02.0

1590 rows × 48 columns

使用數(shù)據(jù)透視表對數(shù)據(jù)進(jìn)行整理,將年月作為數(shù)據(jù)的列,客戶id作為數(shù)據(jù)的行索引。計算求復(fù)購率,復(fù)購率的定義是某月消費兩次及以上的用戶在總消費用戶中的占比,并且如果一個用戶在同一天下了兩筆訂單,也算作復(fù)購用戶

# 將消費兩次以上記為1,消費1次記為0,沒有消費記為nan pivoted = pivoted.applymap(lambda x:1 if x > 1 else np.nan if x == 0 else 0) pivoted year_month2011-01-012011-02-012011-03-012011-04-012011-05-012011-06-012011-07-012011-08-012011-09-012011-10-01...2014-03-012014-04-012014-05-012014-06-012014-07-012014-08-012014-09-012014-10-012014-11-012014-12-01Customer IDAA-10315AA-10375AA-10480AA-10645AA-315...YS-21880ZC-11910ZC-21910ZD-11925ZD-21925
NaNNaN0.00.0NaNNaNNaNNaN0.0NaN...NaN0.0NaN1.00.00.0NaNNaNNaN1.0
NaNNaNNaN0.0NaNNaN0.0NaNNaN0.0...NaNNaNNaNNaNNaN1.0NaN0.00.01.0
0.0NaN0.00.0NaN0.0NaN0.0NaNNaN...0.01.00.0NaNNaN0.00.0NaNNaNNaN
1.0NaNNaN0.0NaN0.00.0NaNNaNNaN...0.00.0NaN1.0NaNNaNNaN1.00.00.0
NaNNaNNaNNaNNaNNaNNaN0.0NaNNaN...NaNNaN0.0NaN0.0NaNNaNNaNNaNNaN
...............................................................
0.0NaNNaNNaNNaNNaNNaNNaNNaN0.0...NaN1.0NaN0.0NaN1.0NaNNaNNaN1.0
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN0.0NaNNaNNaNNaNNaNNaN
NaNNaNNaNNaNNaNNaNNaNNaN0.01.0...NaNNaN0.01.01.00.0NaN0.01.01.0
NaNNaNNaNNaNNaNNaN0.0NaNNaNNaN...0.0NaNNaNNaNNaNNaNNaNNaNNaN0.0
NaN0.0NaNNaN0.0NaNNaN0.00.0NaN...NaNNaNNaN0.0NaNNaNNaNNaNNaN1.0

1590 rows × 48 columns

使用sum和count計算復(fù)購率,這兩個函數(shù)都會忽略NaN值,sum計算的是在一個月內(nèi)消費兩次及以上的用戶數(shù),count計算的是在一個月內(nèi)有過消費的客戶數(shù)

repeat_rate=pivoted.sum()/pivoted.count() repeat_rate.plot() plt.title('每年不同月份復(fù)購率波動') plt.ylabel('復(fù)購率',rotation=0);

從上圖可以看出:

  • 該超市用戶的整體復(fù)購率隨著年份的增長,逐漸增加,從最初2011年的0.1出頭,到2014年末,一月內(nèi)復(fù)購率最高值達(dá)到了將近0.35,提升巨大
  • 早期由于大量新用戶的加入,新客的復(fù)購率相對較低,而在后期復(fù)購率基本可以穩(wěn)定在20%-30%,可以看出用戶的粘性還是比較高的

4.2 用戶分類

4.2.1 客戶RFM模型

在面向客戶制定運營策略、營銷策略時,我們希望能夠針對不同的客戶推行不同的策略,實現(xiàn)精準(zhǔn)化運營,以期獲取最大的轉(zhuǎn)化率。精準(zhǔn)化運營的前提是客戶關(guān)系管理,而客戶關(guān)系管理的核心是客戶分類。

通過客戶分類,對客戶群體進(jìn)行細(xì)分,區(qū)別出低價值客戶、高價值客戶,對不同的客戶群體開展不同的個性化服務(wù),將有限的資源合理地分配給不同價值的客戶,實現(xiàn)效益最大化。

#定義用戶類別 def transform_label(x):if x == 111:label = '重要價值客戶'elif x == 110:label = '潛力客戶'elif x == 101:label = '重要發(fā)展客戶'elif x == 100:label = '新客戶'elif x == 11:label = '重要喚回客戶'elif x == 10:label = '一般客戶'elif x == 1:label = '重要挽留客戶'elif x == 0:label = '流失客戶'return labeldf = df[['Order ID','Order Date','Customer ID','Sales']]r = df.groupby('Customer ID')['Order Date'].max().reset_index() r['R'] = (pd.to_datetime('2015-1-1') - r['Order Date']).dt.days r = r[['Customer ID','R']]#每一條記錄代表一種商品,有些訂單有多種商品,原始數(shù)據(jù)會把訂單展開成多行,將其算成一次購買記錄,即頻次算1次 dup_f = df.groupby(['Customer ID','Order ID'])['Order Date'].count().reset_index() f = dup_f.groupby('Customer ID')['Order Date'].count().reset_index() f.columns = ['Customer ID','F']sum_m = df.groupby('Customer ID')['Sales'].sum().reset_index() com_m = pd.merge(sum_m,f,left_on = 'Customer ID',right_on = 'Customer ID',how = 'inner')#計算用戶平均支付金額 com_m['M'] = com_m['Sales'] / com_m['F']rfm = pd.merge(r,com_m,left_on = 'Customer ID',right_on = 'Customer ID',how = 'inner') rfm = rfm[['Customer ID','R','F','M']]rfm['R-SCORE'] = pd.cut(rfm['R'],bins = rfm['R'].quantile(q=np.linspace(0,1,num=6),interpolation='nearest'),labels = [5,4,3,2,1],right = False).astype(float) rfm['F-SCORE'] = pd.cut(rfm['F'],bins = rfm['F'].quantile(q=np.linspace(0,1,num=6),interpolation='nearest'),labels = [1,2,3,4,5],right = False).astype(float) rfm['M-SCORE'] = pd.cut(rfm['M'],bins = rfm['M'].quantile(q=np.linspace(0,1,num=6),interpolation='nearest'),labels = [1,2,3,4,5],right = False).astype(float)rfm['R>mean'] = (rfm['R-SCORE'] > rfm['R-SCORE'].mean()) * 1 rfm['F>mean'] = (rfm['F-SCORE'] > rfm['F-SCORE'].mean()) * 1 rfm['M>mean'] = (rfm['M-SCORE'] > rfm['M-SCORE'].mean()) * 1rfm['Score'] = (rfm['R>mean'] * 100) + (rfm['F>mean'] * 10) + (rfm['M>mean'] * 1)rfm['客戶類型'] = rfm['Score'].apply(transform_label)count = rfm['客戶類型'].value_counts().reset_index() count.columns = ['客戶類型','人數(shù)'] count['人數(shù)占比'] = count['人數(shù)'] / count['人數(shù)'].sum()rfm['購買總金額'] = rfm['F'] * rfm['M'] mon = rfm.groupby('客戶類型')['購買總金額'].sum().reset_index() mon.columns = ['客戶類型','消費金額'] mon['金額占比'] = mon['消費金額'] / mon['消費金額'].sum() result = pd.merge(count,mon,left_on = '客戶類型',right_on = '客戶類型') result 客戶類型人數(shù)人數(shù)占比消費金額金額占比01234567
流失客戶4020.2528306.342346e+050.050167
重要價值客戶3200.2012585.534281e+060.437752
新客戶2940.1849067.515087e+050.059443
潛力客戶2100.1320752.302542e+060.182127
重要挽留客戶1320.0830197.162249e+050.056652
重要發(fā)展客戶1180.0742141.072944e+060.084868
重要喚回客戶660.0415091.123060e+060.088832
一般客戶480.0301895.077063e+050.040159

顧客分層結(jié)構(gòu)分析

  • 各類顧客對銷售額的貢獻(xiàn)
from pyecharts.charts import Grid, Pie, Bar from pyecharts import options as opts from pyecharts.globals import ThemeType# 這里為了美觀和交互性,使用pyecharts做南丁格爾玫瑰圖,需要將numpy.int轉(zhuǎn)化成python原生態(tài)int customer_category_sum = [] for i in result['人數(shù)'].values:customer_category_sum.append(int(i)) customer_list = [list(z) for z in zip(result['客戶類型'], customer_category_sum)]# 繪制餅圖 pie = (Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS,bg_color='white')).add('',customer_list,radius=['30%','75%'],rosetype='radius',label_opts=opts.LabelOpts(is_show=True)).set_global_opts(title_opts=opts.TitleOpts(title='顧客分層結(jié)構(gòu)',pos_left='center'),toolbox_opts=opts.ToolboxOpts(is_show=True),legend_opts=opts.LegendOpts(orient='vertical',pos_right='0%',pos_top='30%')).set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:ozvdkddzhkzd%'))) pie.render_notebook() <div id="fcb635cef5044684b6483e669497d314" style="width:900px; height:500px;"></div>

從顧客分層結(jié)構(gòu)來看:

  • 可以看到無價值的流失客戶占據(jù)了最大的一部分,這里統(tǒng)計了三年內(nèi)的用戶進(jìn)行RFM模型構(gòu)建,可見我們?nèi)陼r間流失了超過1/4的用戶(或者說是沉睡客戶),雖然我們的營業(yè)額一直在提升,但是也不能掩飾我們流失客戶過多的問題
  • 做的好的方面是我們的重要價值客戶占比非常大,超過了20%,貢獻(xiàn)了主要的銷售額流水,可以針對他們進(jìn)行針對性的定制性、個性化服務(wù)
  • 單純看占比是沒有意義的,因為我們的目的是擴(kuò)大GMV,因此下面我們再結(jié)合消費金額分布情況,來看下我們實際應(yīng)該針對哪些層級的用戶進(jìn)行精準(zhǔn)投放
result.sort_values(by=['消費金額'],ascending=False,inplace=True) sales_rate=[]; a=0 for i in result.金額占比:a +=isales_rate.append(a) result['金額占比累加'] = sales_rate result 客戶類型人數(shù)人數(shù)占比消費金額金額占比金額占比累加13652407
重要價值客戶3200.2012585.534281e+060.4377520.437752
潛力客戶2100.1320752.302542e+060.1821270.619879
重要喚回客戶660.0415091.123060e+060.0888320.708711
重要發(fā)展客戶1180.0742141.072944e+060.0848680.793579
新客戶2940.1849067.515087e+050.0594430.853022
重要挽留客戶1320.0830197.162249e+050.0566520.909674
流失客戶4020.2528306.342346e+050.0501670.959841
一般客戶480.0301895.077063e+050.0401591.000000
# 建立左側(cè)縱坐標(biāo)畫板 fig, ax1 = plt.subplots() # 畫柱狀圖圖 s = plt.bar(result.客戶類型, result.消費金額, alpha=0.5, label='消費金額') # 顯示左側(cè)縱坐標(biāo) ax1.set_ylabel('消費金額', fontsize=20) plt.yticks(range(0,6000000,500000),['0','50W','100W','150W','200W','250W','300W','350W','400W','450W','500W','550W']) plt.tick_params(labelsize=14) # 顯示文字 for x1,y1 in zip(result.客戶類型, result.消費金額):plt.text(x1, y1+20000, str(int(y1/10000)) + 'W' , ha='center',fontsize=20)ax2 = ax1.twinx() # # 畫折線圖 line = ax2.plot(result.客戶類型, result.金額占比累加, linewidth=3,marker='o' ,c='y',ms=10) # # 折線圖顯示標(biāo)識 for a, b in zip(result.客戶類型, result.金額占比累加): ax2.text(a, b+0.02, "%.0f" % (100 * b) + '%', ha='center', fontsize=20) ax2.set_ylabel('金額占比累加', fontsize=20, rotation=270) plt.ylim(0,1.05) plt.tick_params(labelsize=14) ax2.set_title("各類型顧客消費額及其累加占比", fontsize=22) plt.show()

從各類型客戶和銷售額占比可以看出:

  • 重要價值客戶貢獻(xiàn)金額最高,44%的比例,可見該超市是有一群穩(wěn)定的老顧客,經(jīng)常來超市消費,是銷售額的主要來源,潛力客戶和重要價值客戶,占了銷售額的62%,而其他6類用戶的貢獻(xiàn)金額較少,每個類群的客戶貢獻(xiàn)金額都不超過銷售額的10%
  • 人數(shù)占比最多的流失客戶,貢獻(xiàn)金額只有5%左右,可見是有一群低質(zhì)量的用戶,后續(xù)可以進(jìn)行渠道跟蹤,摒棄用戶質(zhì)量較差的渠道
  • 應(yīng)該著重將運營的重心放在重要價值客戶,如何留住核心收入來源的重要價值用戶以及通過推薦高質(zhì)量產(chǎn)品等方法來擴(kuò)大潛力顧客的購買金額,是現(xiàn)階段的任務(wù)。
  • 通過整體的探索發(fā)現(xiàn),此數(shù)據(jù)集收集的數(shù)據(jù)顯示,該超市4年銷售額累計1200余萬元,4年共有客戶接近1600人,可見規(guī)模不大,運營能力不會很強(qiáng),以上圖的用戶分法并不能很好的去進(jìn)行分組運營的落地,可以將用戶分成三類,重要價值客戶、潛力客戶、其他客戶,針對三類用戶群展開不同的運營策略會更容易實行,對這三類不同的客戶群體開展不同的個性化服務(wù),將有限的資源合理地分配給不同價值的客戶,從而實現(xiàn)效益最大化。

4.2.2 K-means挖掘價值客戶

如上圖所示,將用戶分為8類,并不能很好的分群實行不同的運營策略,這里再嘗試用K-means機(jī)器學(xué)習(xí)算法進(jìn)行分群

RFM=rfm[['Customer ID','R','F','購買總金額']] RFM.columns=['CustomerID','Recency','Frequency','Monetary'] RFM.describe() RecencyFrequencyMonetarycountmeanstdmin25%50%75%max
1590.0000001590.0000001590.000000
88.61698116.1968557951.259063
127.87987910.6191996936.570172
1.0000001.0000007.173000
15.0000006.0000001674.812250
41.00000014.0000006248.135590
104.00000026.00000013133.098420
1119.00000041.00000035668.120800
# 觀測一下數(shù)據(jù)分布 f,ax = plt.subplots(3,1,figsize=(10, 12)) plt.subplot(3,1,1); sns.distplot(RFM['Recency'],label='Recency') plt.subplot(3,1,2); sns.distplot(RFM['Frequency'],label='Frequency') plt.subplot(3,1,3); sns.distplot(RFM['Monetary'],label='Monetary');

數(shù)據(jù)預(yù)處理

# 對數(shù)轉(zhuǎn)化 RFM_log = RFM[['Recency', 'Frequency', 'Monetary']].apply(np.log, axis=1).round(2) f,ax=plt.subplots(3,1,figsize=(10,12)) plt.subplot(3,1,1); sns.distplot(RFM_log['Recency'], label='Recency') plt.subplot(3,1,2); sns.distplot(RFM_log['Frequency'], label='Frequency') plt.subplot(3,1,3); sns.distplot(RFM_log['Monetary'],label='MemoryError');

4.2.2.2 標(biāo)準(zhǔn)化處理

from sklearn.preprocessing import StandardScaler,NormalizerRFM_normalization = StandardScaler().fit_transform(RFM_log)

4.2.2.3 選擇聚類數(shù)目

通常有兩種方法,一是肘部法則(Elbow Criterion method),選擇代價函數(shù)下降的顯著轉(zhuǎn)折點;二是業(yè)務(wù)經(jīng)驗

這里使用肘部法則進(jìn)行K值選擇,并且使用Calinski-Harabasz Index和TSNE降維可視化分析進(jìn)行評估

from sklearn.cluster import KMeans # K值的選擇,1-8 ks = range(1,9) inertias=[] for k in ks:kc=KMeans(n_clusters=k, init='k-means++', random_state=1)kc.fit(RFM_normalization)inertias.append(kc.inertia_) # 樣本距離其聚類中心的距離平方和print('k=',k,'迭代次數(shù)',kc.n_iter_) k= 1 迭代次數(shù) 2 k= 2 迭代次數(shù) 4 k= 3 迭代次數(shù) 20 k= 4 迭代次數(shù) 8 k= 5 迭代次數(shù) 14 k= 6 迭代次數(shù) 11 k= 7 迭代次數(shù) 22 k= 8 迭代次數(shù) 12 # 繪制每個K值對應(yīng)的inertia_f,ax=plt.subplots(figsize=(10,6)) plt.plot(ks,inertias,'-o') plt.xlabel('number of clusters') plt.ylabel('sum of squared distances') plt.title('Elbow criter method to find best k');

from sklearn import metrics kk = range(2,9) for k in kk:y_pred = KMeans(n_clusters=k, random_state=1).fit_predict(RFM_normalization) #k必須大于1calinski = metrics.calinski_harabaz_score(RFM_normalization, y_pred)print('k:',k,' calinski=',calinski) k: 2 calinski= 2290.9185040560255 k: 3 calinski= 1746.1656166404057 k: 4 calinski= 1721.8535796545677 k: 5 calinski= 1741.4614805385613 k: 6 calinski= 1590.1114912259004 k: 7 calinski= 1527.4148500701804 k: 8 calinski= 1506.3665579664887
  • 根據(jù)肘部法則定理,可以看到當(dāng)k=2時,代價函數(shù)下降會有一個顯著轉(zhuǎn)折點,但分成兩類太少,對精益化運營氣不到效果,從calinski_harabaz_scores來看,除了分成2類,其次是k=3最大。結(jié)合業(yè)務(wù)而言,將用戶分成3類應(yīng)該會是比較好的選擇

4.2.2.4 模型計算

kc = KMeans(n_clusters=3, random_state=1) kc.fit(RFM_normalization) # 每個樣本對應(yīng)的類簇標(biāo)簽,順序與樣本原始順序一致 RFM['K-means_label'] = kc.labels_ RFM.head() CustomerIDRecencyFrequencyMonetaryK-means_label01234
AA-1031591913747.413000
AA-103757235884.195000
AA-104801182017695.589780
AA-10645273615343.890700
AA-315372243.256001

組內(nèi)特征

RFM_normalization1=pd.DataFrame(RFM_normalization, index=RFM.index, columns=['Recency', 'Frequency', 'Monetary']) RFM_normalization1['K-means_label']=kc.labels_ RFM_melt=pd.melt(RFM_normalization1, id_vars=['K-means_label'],value_vars=['Recency', 'Frequency', 'Monetary'],var_name='Metric',value_name='Value')sns.lineplot(x = 'Metric', y = 'Value', hue = 'K-means_label',data = RFM_melt, palette=sns.color_palette("hls", 3)) plt.title("Plot of RFM");

k_cluster =RFM.groupby(['K-means_label']).agg({'Recency':'mean','Frequency':'mean','Monetary':['mean','count']}).round(2); k_cluster RecencyFrequencyMonetarymeanmeanmeancountK-means_label012
32.5326.0813849.78793
29.267.662536.67316
220.075.511783.87481

對于RFM模型而言,R越小越好,而F和M則越大越好。從圖中3類用戶可以看出:

  • 0:平均消費次數(shù)為26次,平均消費金額1.4W元左右,平均最近一次購買在一個月左右
  • 1:平均消費次數(shù)為7次,平均消費金額2500元左右,平均最近一次購買在一個月左右
  • 2: 平均消費次數(shù)為5次,平均消費金額1800元左右,平均最近一次購買在220天左右

針對類別0的高價值用戶,對其購物行為進(jìn)行針對性分析,可以從以下幾個方面進(jìn)行,從而提供個性化得消費方案,形成智能商業(yè)模式。

  • 高價值用戶的消費習(xí)慣(購物時段)
  • 購買的商品偏好
  • 購物種類的關(guān)聯(lián)性(同時購買得產(chǎn)品)
# TSNE降維 from sklearn.manifold import TSNEtsne = TSNE(n_components=2, random_state=1) X_tsne = tsne.fit_transform(RFM_normalization) k_range = KMeans(n_clusters=3, random_state=1) k_range.fit(RFM_normalization) cluster_labels = kc.labels_plt.scatter(X_tsne[:, 0],X_tsne[:, 1], c=cluster_labels);

4.2.2.6 顧客分層結(jié)構(gòu)分析

# 構(gòu)建各類別顧客數(shù)量的python原生態(tài)list labels=['類別0','類別1','類別2'] labels_count = [] for i in k_cluster['Monetary', 'count'].values:labels_count.append(int(i)) customer_list = [list(z) for z in zip(labels, labels_count)]# 構(gòu)建各類別顧客銷售額的python原生態(tài)list customer_sales=RFM.groupby('K-means_label').agg({'Monetary': 'sum'}) labels_sales = [] for i in customer_sales.values:labels_sales.append(int(i)) sales_list = [list(z) for z in zip(labels, labels_sales)]p =(Pie(init_opts=opts.InitOpts(width="950px", height="600px",theme=ThemeType.MACARONS)).add(series_name="顧客數(shù)量及占比",data_pair=customer_list,radius=[0, "30%"],label_opts=opts.LabelOpts(position="inner"),).add(series_name="銷售額及占比",radius=["40%", "55%"],data_pair=sales_list,label_opts=opts.LabelOpts(position="outside",formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c} {per|ozvdkddzhkzd%} ",background_color="#eee",border_color="#aaa",border_width=1,border_radius=4,rich={"a": {"color": "#999", "lineHeight": 15, "align": "center"},"abg": {"backgroundColor": "#e3e3e3","width": "100%","align": "right","height": 15,"borderRadius": [4, 4, 0, 0],},"hr": {"borderColor": "#aaa","width": "100%","borderWidth": 0.5,"height": 0,},"b": {"fontSize": 16, "lineHeight": 20},"per": {"color": "#eee","backgroundColor": "#334455","padding": [2, 4],"borderRadius": 2,},},),).set_global_opts(title_opts=opts.TitleOpts(title='各類別顧客數(shù)量及銷售額占比',pos_left='center'),legend_opts=opts.LegendOpts(pos_left="left", orient="vertical")).set_series_opts(tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} <br/>{b}: {c} (ozvdkddzhkzd%)")) ) p.render_notebook() <div id="8380e5561d83423ca753622d0798ca56" style="width:950px; height:600px;"></div>

從上圖可以看出:

  • 銷售額的主要來源是類別0的人群,他們?nèi)藬?shù)占比50%,消費金額占比87%左右
  • 可見此超市是有一群固定的高價值客戶來穩(wěn)定消費,粉絲群體穩(wěn)定,而且占比大,需要針對他們提供個性化方案,預(yù)防流失。
  • 類別1和類別2的顧客區(qū)分并不明顯,如果運營能力有限,可以將其合并為一類用戶

5 結(jié)論建議

總結(jié)

以上是生活随笔為你收集整理的超市数据分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

91视频传媒 | 精品国产乱码 | 最近日韩免费视频 | 国产成人亚洲在线电影 | 日韩在线观看第一页 | 五月天中文字幕mv在线 | 色网免费观看 | 国产一级a毛片视频爆浆 | 在线观看日本高清mv视频 | 丁香综合五月 | 欧美精品久久久久久久久久久 | 亚洲中字幕 | 在线一区二区三区 | 国产一区二区不卡在线 | 欧美成年人在线视频 | 黄色一级网 | 成人午夜电影在线播放 | 亚洲女人av | 久久人91精品久久久久久不卡 | 国产精品久久三 | 中文字幕在线观看亚洲 | 日韩在线视频线视频免费网站 | 亚洲一级国产 | 99视频免费在线观看 | 中文字幕综合在线 | 色视频网站在线观看一=区 a视频免费在线观看 | 婷婷在线网站 | 天堂av在线网 | 国产色视频网站2 | 免费在线黄 | 亚州精品天堂中文字幕 | 久久久久女人精品毛片 | 欧美视频18 | 人人插人人射 | 亚洲污视频| 日韩最新av| 色偷偷88888欧美精品久久久 | 天天干天天在线 | 久久婷婷国产色一区二区三区 | 91中文视频 | 一级片色播影院 | 久草精品视频在线看网站免费 | 日韩亚洲在线观看 | 国产精品涩涩屋www在线观看 | 九七视频在线 | 国产美女被啪进深处喷白浆视频 | 黄色成人影视 | 69精品人人人人 | 国产99久久九九精品免费 | 9992tv成人免费看片 | 深爱婷婷 | 成人亚洲欧美 | 少妇bbbb搡bbbb桶| 999国内精品永久免费视频 | 狠狠色丁香婷婷综合 | 日韩理论影院 | 国产精品入口麻豆www | 97免费视频在线播放 | 深爱激情av| 337p西西人体大胆瓣开下部 | 久热香蕉视频 | 日本三级久久久 | 免费看黄20分钟 | 久久视频免费观看 | 成人av免费在线观看 | 亚洲一区二区三区四区在线视频 | 久久99国产精品 | 99久久精品久久亚洲精品 | 欧美亚洲免费在线一区 | 97超碰人 | 成年人免费看 | 免费a级观看 | 国产精品一区二区在线免费观看 | 久久久久久久久久久久影院 | 97在线播放| 国产精品亚洲a | 国产一区二区综合 | 久久久精品久久日韩一区综合 | 婷婷六月天在线 | 成人网在线免费视频 | 色午夜 | 首页av在线| 久久观看| 国产二区av | 日韩欧美在线视频一区二区三区 | 悠悠av资源片 | 久久精品理论 | 国产成年人av | 国产视频在线一区二区 | 久久久久久久久福利 | 午夜视频不卡 | 欧美国产日韩激情 | 麻豆一区二区三区视频 | 国产麻豆精品一区 | 91中文字幕网 | 国产对白av| 日韩色在线 | 国产做a爱一级久久 | 综合精品久久久 | 国产黄在线观看 | 九九视频免费观看视频精品 | 日韩国产精品一区 | 亚洲欧美国产精品 | 国产精品欧美 | 日韩精品一区二区三区第95 | 日韩xxxbbb | 六月丁香婷婷网 | 大胆欧美gogo免费视频一二区 | 国产第一页福利影院 | 2019中文| 天天射综合 | 婷婷在线色 | 91免费国产在线观看 | 91视频-88av| 91超级碰碰 | 成人国产精品免费观看 | 国产亚洲成av片在线观看 | 免费av在线网站 | 成人在线视频你懂的 | 51精品国自产在线 | 91自拍91| 久久综合精品国产一区二区三区 | 国产成人黄色网址 | 日韩一区在线免费观看 | 98福利在线| 国产精品一区二区三区免费视频 | 免费观看国产精品视频 | 久久国产电影院 | 久久不射电影院 | 国产福利在线免费观看 | 久久96国产精品久久99漫画 | 日韩电影在线视频 | 久久精品在线 | 欧美日韩国内在线 | 欧美aa在线 | 中文字幕 国产视频 | 男女激情免费网站 | 日韩免费在线观看 | 久久人人爽人人爽 | 成人在线视频免费看 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 爱爱av在线 | 人人要人人澡人人爽人人dvd | 草久热 | 精品亚洲一区二区 | 亚洲欧美精品一区二区 | 国产精品视频永久免费播放 | 亚洲高清国产视频 | 在线观看小视频 | av动图 | 91久久久久久久一区二区 | 亚洲高清精品在线 | 国产免费又爽又刺激在线观看 | 久久久久久福利 | 91亚洲狠狠婷婷综合久久久 | 视频在线观看日韩 | 久草在线综合 | 国产91成人在在线播放 | 亚洲精品免费观看视频 | 五月激情亚洲 | 97久久精品午夜一区二区 | 日本精品久久久久中文字幕5 | 欧美日韩在线观看一区二区三区 | 日韩一区二区三区免费电影 | 成人日批视频 | 久久免费毛片视频 | 成人不用播放器 | 国产手机视频在线观看 | 久久色在线播放 | 国产91学生粉嫩喷水 | 免费欧美高清视频 | 欧美日韩国产一区 | 亚洲经典在线 | 久久久久高清毛片一级 | 韩日电影在线免费看 | 99免费在线视频 | 一区二区电影网 | 五月婷在线视频 | 天天干婷婷 | 色资源在线观看 | 91高清免费 | 中文字幕乱码日本亚洲一区二区 | 成人99免费视频 | 国产成人精品一区二区三区在线观看 | 最近字幕在线观看第一季 | 久草| 久久国产精品成人免费浪潮 | 蜜臀精品久久久久久蜜臀 | 亚洲黄色在线 | 国产精品丝袜 | 午夜视频一区二区三区 | 亚洲激情在线视频 | 狠狠干激情 | 久99久在线 | 欧美analxxxx| 18国产精品白浆在线观看免费 | 久久er99热精品一区二区三区 | 涩涩资源网 | 亚洲一区二区麻豆 | 激情网站五月天 | 狠狠狠狠狠狠 | 99在线视频观看 | 高清色免费 | 日韩a欧美 | 免费网站色 | 在线看片a| 国产亚洲人成网站在线观看 | 97成人资源 | 玖玖视频在线 | 久久久久成人精品亚洲国产 | 人人网人人爽 | 久草在线视频免费资源观看 | 国产一级黄色免费看 | 国产精品视频全国免费观看 | 国产天天综合 | 成人精品国产 | 成人黄色av免费在线观看 | www黄色软件 | 亚洲精品99久久久久中文字幕 | 国产精品女人网站 | 黄色三级网站在线观看 | 日韩高清国产精品 | 久久99操| www久久国产 | 成人av高清| 偷拍精偷拍精品欧洲亚洲网站 | 一区二区国产精品 | 国产97视频 | 国产手机视频在线 | 99在线视频播放 | 亚洲电影网站 | 久久免费看a级毛毛片 | 欧美日韩视频在线观看免费 | 亚洲精品91天天久久人人 | 一本到在线 | 久久久久久久久久久国产精品 | 国产不卡免费av | 美女网站久久 | 91日本在线播放 | 福利视频午夜 | 久久国产精品一国产精品 | 日韩免费在线视频观看 | 美女视频久久 | 成 人 黄 色 视频 免费观看 | 一区二区三区四区五区在线视频 | 99精品欧美一区二区三区 | 成人免费看片98欧美 | 欧美激情亚洲综合 | japanesexxx乱女另类 | 久久久久免费精品 | 日韩av视屏 | 黄色大片日本免费大片 | 国产精品第二页 | 国产小视频在线免费观看 | 日韩在观看线 | 国产精品毛片一区二区在线 | 精品亚洲网| 国产黄色大片 | 国产一区二区在线观看视频 | 亚洲黄色免费电影 | 在线不卡a | 欧美日本不卡视频 | 五月天亚洲激情 | 久久精品www人人爽人人 | 国产伦理一区二区 | 日韩影视在线观看 | 伊人天堂av | 超碰成人av | www.婷婷色| 国产一级二级在线观看 | 国产xvideos免费视频播放 | 在线精品视频在线观看高清 | 一区二区不卡视频在线观看 | 美女网站一区 | 人人玩人人爽 | 国产网站av | 97碰碰精品嫩模在线播放 | 国产精品久久久久久久久久不蜜月 | 欧美专区日韩专区 | 日韩av电影中文字幕在线观看 | 人人爱在线视频 | 久草在线| 国内精品久久天天躁人人爽 | 99久热精品 | 日韩xxxxxxxxx | 精品在线99 | 99精品黄色片免费大全 | 欧美日高清视频 | 国产夫妻性生活自拍 | 精品福利网站 | 色噜噜日韩精品欧美一区二区 | 久久精品这里精品 | 国产手机视频 | 视频国产区 | 免费看日韩| 国内视频在线 | 日韩精品免费一区二区三区 | 日b视频国产 | 国产福利91精品一区二区三区 | 久久精品亚洲一区二区三区观看模式 | 欧美日韩aa | 99免费精品视频 | 国产一区二区精 | 久久亚洲影院 | 最近免费在线观看 | 欧美日韩不卡在线 | 中文在线a√在线 | 国产专区欧美专区 | 91亚洲精品久久久蜜桃 | 最近中文字幕高清字幕免费mv | 欧美激情奇米色 | 日韩理论片在线 | av大片免费在线观看 | 久久色在线播放 | 国产免费国产 | 免费视频91蜜桃 | www..com毛片 | 91视频91蝌蚪| 久久超碰网 | 中文字幕精品一区二区三区电影 | 激情在线网站 | 黄色www免费 | 91精品国产乱码久久 | 久久超碰网 | 午夜电影中文字幕 | 亚洲男男gⅴgay双龙 | 久久久久久99精品 | 伊人影院得得 | a级一a一级在线观看 | 欧美国产精品一区二区 | 国产手机在线视频 | 精品国产91亚洲一区二区三区www | 91视频一8mav| 在线精品观看 | 国产一区二区午夜 | 久久超碰99 | 99精品欧美一区二区三区黑人哦 | 人人澡人人澡人人 | 九九综合九九 | 国产98色在线 | 日韩 | 亚洲国产精品电影在线观看 | 狠狠操狠狠干天天操 | a级一a一级在线观看 | 九七视频在线观看 | 国产精品自产拍在线观看 | 欧美一区二区三区免费看 | 日韩亚洲国产精品 | 日韩欧美在线综合网 | 国产裸体永久免费视频网站 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 天天干,天天操,天天射 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 黄污在线看 | 欧美日韩在线免费观看 | 美女免费视频黄 | 国产一级二级av | 日本老少交 | 日韩视频欧美视频 | 欧美日韩国产欧美 | 亚洲乱码国产乱码精品天美传媒 | 免费日韩一区二区三区 | 免费日韩一区二区三区 | 99热官网| 免费在线观看成年人视频 | 日韩综合第一页 | 国产va在线| 91福利试看 | 精品久久久久久国产偷窥 | 97视频在线观看成人 | 国内成人精品视频 | 黄污污网站 | 国产精品一区二区在线观看免费 | 草久中文字幕 | www激情网| 亚洲综合小说电影qvod | 欧美日韩亚洲在线观看 | 嫩草av在线 | 日韩视频区| av在线播放观看 | 亚洲精品黄色在线观看 | 日av免费 | 久久这里只有精品久久 | 日p视频在线观看 | 亚洲一级黄色av | 五月婷婷免费 | 久久久伦理 | 国产精品国产三级国产不产一地 | 日韩免费在线一区 | 国产亚洲午夜高清国产拍精品 | 亚洲黄电影| 九九精品在线观看 | 久久人人爽人人爽人人片av免费 | 欧美日韩中文在线视频 | 国产精品免费观看视频 | 一区二区三区在线观看中文字幕 | 久久一视频 | av一二三区 | 成年人免费看 | 丰满少妇一级片 | 狠狠操天天操 | 99中文字幕 | 国产午夜不卡 | 久草视频免费看 | 97视频亚洲 | 国产亚洲精品日韩在线tv黄 | av看片在线观看 | 亚洲三级在线播放 | 麻豆影音先锋 | 激情网在线观看 | 欧美91片| 天天综合网天天综合色 | 视频国产 | 黄色大全免费网站 | 日韩av黄| 国产精品18久久久久白浆 | 麻豆视频免费入口 | 亚洲精品久久久久999中文字幕 | 亚洲国产精品电影 | 久久久久久久国产精品 | 久久久久国产精品午夜一区 | 色偷偷88888欧美精品久久 | 五月天堂网| 免费在线观看一区二区三区 | 国产成人一区二 | 99久e精品热线免费 99国产精品久久久久久久久久 | 午夜一级免费电影 | 91高清一区 | 成年人免费观看在线视频 | 免费观看视频黄 | 精品久久在线 | 蜜桃麻豆www久久囤产精品 | 毛片网在线 | 日韩欧美在线视频一区二区 | 国产一区二区观看 | 免费日韩 精品中文字幕视频在线 | 亚洲精品视频免费在线观看 | 国产人免费人成免费视频 | 中文在线天堂资源 | 久久精国产 | 天堂网av在线 | 久久在线视频在线 | 日韩高清无线码2023 | 999久久久久久久久久久 | 成 人 黄 色 视频 免费观看 | 特级大胆西西4444www | 狠狠躁日日躁狂躁夜夜躁 | 天天天天爱天天躁 | 激情综合网五月 | a久久免费视频 | 国产精品一区二区久久久 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 中文字幕4 | 亚洲日本国产精品 | 日韩天堂在线观看 | 在线精品视频在线观看高清 | 久久久久久国产精品免费 | 精品久久福利 | 超碰电影在线观看 | 国产麻豆精品久久一二三 | 国产成人精品国内自产拍免费看 | 精品免费视频. | 中文理论片 | 婷婷综合成人 | 97精品国产91久久久久久久 | 日韩免费视频观看 | 国产视频在线免费 | 91中文字幕在线播放 | 亚洲免费在线看 | 美女国产网站 | 久久伊人五月天 | 成人蜜桃网 | 少妇18xxxx性xxxx片 | 最新av中文字幕 | 日韩免费看视频 | 国产午夜精品一区二区三区四区 | 色网站在线看 | 在线电影 一区 | 日b视频国产 | 欧美aaa一级| 日韩精品一区二区三区在线播放 | 天天干天天在线 | 国产精品久久久久久久久搜平片 | 欧美一区二区三区激情视频 | 99视频精品免费视频 | 久久天堂影院 | 麻豆视屏 | 精品国产一区二区三区久久久久久 | 精品亚洲免费 | 日韩免费在线网站 | 在线观看91网站 | 五月天伊人 | 亚洲国产精品成人女人久久 | 久久综合久久综合这里只有精品 | 91在线中字 | 99高清视频有精品视频 | 精品一区二区在线观看 | 国产伦精品一区二区三区在线 | 五月婷婷影视 | 国产人成精品一区二区三 | 久草视频在线播放 | 久久国产精品免费一区二区三区 | 免费三级大片 | 国产精品激情 | 久久视| 欧美日韩高清一区二区 国产亚洲免费看 | 国产成人在线精品 | 五月的婷婷 | 久久久久国产一区二区三区四区 | 91成人短视频在线观看 | 在线观看国产麻豆 | 一区二区三区免费 | 久久综合一本 | 欧美91在线| 二区三区视频 | 日本aaa在线观看 | 国产精品日韩在线 | 色.com| 国产精品成人a免费观看 | 久久精品久久精品久久 | 97精品超碰一区二区三区 | 毛片888 | 免费观看丰满少妇做爰 | 超薄丝袜一二三区 | 综合色久| 亚洲,国产成人av | 少妇bbw揉bbb欧美 | 天天插天天射 | 精品国产观看 | 一区二区三区免费在线观看视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 777久久久| 国产精品岛国久久久久久久久红粉 | 国产艹b视频 | 91尤物国产尤物福利在线播放 | 99re视频在线观看 | 色香天天 | 国产 日韩 中文字幕 | 久久国产美女视频 | 久久天天躁狠狠躁亚洲综合公司 | 97超碰人人澡 | 最新av网址大全 | 特黄特黄的视频 | 免费黄色小网站 | 久久久久久久久久网站 | 伊人宗合网 | www.狠狠插.com| 天天操夜夜操夜夜操 | 久久深夜福利免费观看 | 在线日韩视频 | 国产精品尤物视频 | 在线观看播放av | 国产精品久久久久久久久婷婷 | 又黄又爽的视频在线观看网站 | 涩涩成人在线 | 丁香六月婷 | 91九色最新| 成人av在线影视 | 九热精品| 日韩中文字幕在线不卡 | 久久久www成人免费毛片 | 91在线网站 | 久久久999| 欧洲色综合 | 日韩av五月天 | 免费a网 | 国产精品日韩欧美 | 四虎在线观看精品视频 | 免费av高清 | 久草网视频在线观看 | 久久69精品久久久久久久电影好 | 91中文字幕 | 五月婷香蕉久色在线看 | 国产精品视频999 | 久久人91精品久久久久久不卡 | 色婷婷亚洲婷婷 | 久久99国产精品久久99 | 成人一级片在线观看 | 最近日本字幕mv免费观看在线 | 免费国产在线精品 | 精品国产乱码久久久久 | 月下香电影 | 午夜少妇一区二区三区 | 成人网在线免费视频 | 国产日韩欧美视频在线观看 | 久久久久女教师免费一区 | 亚洲精品视频在线观看网站 | 国产精品一区久久久久 | 国产精品91一区 | 日韩视频在线一区 | 久久免费黄色 | 有码一区二区三区 | 69av视频在线 | 中文字幕影视 | 中文字幕免费高清av | 欧美日韩国产页 | 国产精品免费一区二区 | 久草视频首页 | 日日躁夜夜躁aaaaxxxx | 黄免费网站 | 精品久久久久久国产 | 中文字幕欧美三区 | 国产女人18毛片水真多18精品 | 最近中文国产在线视频 | 欧美一级片在线 | 99久久99久久免费精品蜜臀 | 超级av在线 | 国产精品mm | 国产精品短视频 | 欧美一级欧美一级 | www.av在线播放| 久久不射电影网 | 国产精品乱码久久久久久1区2区 | 日批视频在线观看免费 | 中文字幕一区二区三区四区久久 | 黄色一级动作片 | av久久久 | 亚洲禁18久人片 | 国产精品99在线观看 | 91香蕉视频在线 | 国产午夜在线观看视频 | 国产一级片一区二区三区 | 成人久久18免费网站图片 | 成人h动漫精品一区二 | 国产精品自产拍在线观看桃花 | 欧美久久久久久久久久久久久 | 国内视频在线观看 | 亚洲综合日韩在线 | 久久综合成人 | 这里只有精彩视频 | 99精品在线免费在线观看 | 天堂资源在线观看视频 | 麻豆视频免费在线观看 | 久久这里只有精品23 | 成人久久精品视频 | 91免费观看国产 | 91丨九色丨蝌蚪丨对白 | 91精品夜夜| 97香蕉超级碰碰久久免费软件 | 天天干天天做 | 国内小视频| 中文av在线免费观看 | 啪啪小视频网站 | 国产色综合天天综合网 | 日日操天天射 | 国产99久久精品一区二区300 | 国产一级大片在线观看 | 午夜影院一区 | 久在线 | 国产亚洲综合精品 | 久久国产精品二国产精品中国洋人 | 国产高清不卡在线 | 久久免费电影 | 在线 你懂 | 午夜成人免费影院 | 超碰人人99 | 欧美综合在线视频 | 久久伦理电影 | 9在线观看免费高清完整版在线观看明 | 久久精品99北条麻妃 | 国产成人精品久 | 欧美午夜性 | 国产视频69 | 日韩色区| 国产在线综合视频 | 婷婷五月色综合 | 九七视频在线观看 | 成人亚洲精品久久久久 | 免费观看一级一片 | 麻豆国产露脸在线观看 | 久久中国精品 | 九九视频这里只有精品 | 丝袜美腿av| 日韩r级在线 | 国产日韩欧美在线看 | 2024国产精品视频 | 玖玖在线资源 | 日日干av | av网站有哪些 | 久草免费在线观看视频 | 亚洲日韩欧美一区二区在线 | 91精品视频免费在线观看 | 亚洲精品网站 | 国产黄色高清 | 久久综合九色综合97_ 久久久 | 久久综合在线 | 国产成人精品一区二区 | 天天色天天操天天爽 | 成片视频在线观看 | 奇米影视777四色米奇影院 | 天天色天天草天天射 | 国产精品久久久久影视 | 亚洲天天在线 | 免费情趣视频 | 久久亚洲精品国产亚洲老地址 | 51久久夜色精品国产麻豆 | 婷婷色伊人 | 欧美精品久久人人躁人人爽 | 成人va天堂 | 五月婷丁香 | 欧美日韩国产二区三区 | 中文字幕久久精品亚洲乱码 | 综合色久 | 99精品国产99久久久久久福利 | 一区二区三区动漫 | 久久激情精品 | 96亚洲精品久久久蜜桃 | 久久久久久久久久网站 | 成年人在线免费看视频 | 久久成 | 一级性视频 | 99精品视频网| 成人久久久久久久久久 | 人人舔人人舔 | 亚洲国产精品成人精品 | 亚洲高清视频一区二区三区 | 国产视频欧美视频 | 日韩欧美视频一区 | 久草在线久| 亚洲精品乱码久久久久久蜜桃91 | 国产免费又爽又刺激在线观看 | 欧美少妇bbwhd | 午夜免费久久看 | 奇米四色影狠狠爱7777 | 亚洲精品xxxx | 97人人添人澡人人爽超碰动图 | 国产视频资源在线观看 | 麻豆视频91 | 91精品国产乱码久久桃 | 亚洲日本欧美 | 激情丁香综合 | 81精品国产乱码久久久久久 | 亚洲精品成人 | 亚洲最新在线视频 | av黄在线播放 | 国产视频1区2区3区 久久夜视频 | 高清一区二区三区 | 99在线精品视频观看 | 激情开心站 | 91在线视频免费观看 | 六月色| 欧美成人69av | 免费看日韩片 | 99中文字幕 | 久久久免费高清视频 | 精品自拍sae8—视频 | 最新日韩视频 | 国产一区二区精品久久91 | a级成人毛片 | 久久久www成人免费精品张筱雨 | 91九色国产蝌蚪 | 四虎影院在线观看av | 国产精品麻豆果冻传媒在线播放 | 亚洲一区二区三区四区精品 | 亚洲五月 | 伊人狠狠操 | 免费中午字幕无吗 | 四季av综合网站 | .精品久久久麻豆国产精品 亚洲va欧美 | 美女国产免费 | 中文字幕第一页av | 欧美日韩午夜爽爽 | 韩日电影在线免费看 | 亚洲国产经典视频 | 午夜久操| 亚洲日本va中文字幕 | 久草视频手机在线 | 69国产盗摄一区二区三区五区 | 婷婷精品国产一区二区三区日韩 | 麻豆视频免费在线观看 | 亚洲毛片一区二区三区 | 日韩三级视频在线观看 | 日韩欧美高清在线观看 | 欧美激情精品 | 欧美成人影音 | 亚洲精品视频免费在线 | 美女视频黄频大全免费 | 波多野结衣视频一区 | 久久国产精品一区二区三区 | 精品999久久久 | 一级片免费视频 | 色激情在线 | 久久精品4 | 亚洲国产小视频在线观看 | 狠狠干夜夜 | 91香蕉视频好色先生 | 久久99国产精品免费网站 | av色网站 | 美女一区网站 | 亚洲欧美日韩国产一区二区 | 2019天天干天天色 | 久久午夜电影 | 国产a网站 | 日韩手机在线观看 | 午夜精品一区二区三区在线视频 | 国产精品无 | 爱爱av在线 | 亚洲一区不卡视频 | 中文字幕国产在线 | 欧美成亚洲 | 中文字幕电影高清在线观看 | 亚洲中字幕 | a级国产乱理伦片在线观看 亚洲3级 | 欧美成人999 | 国产精品电影在线 | 婷婷色网站 | 日本深夜福利视频 | 日韩av中文字幕在线 | 在线观看黄污 | av在线免费观看黄 | 亚洲欧美视屏 | 97精品视频在线播放 | 国产视频日韩视频欧美视频 | 91在线网站 | 成年人精品 | 伊人天天综合 | 国产一级大片在线观看 | 91九色精品女同系列 | 超碰97免费在线 | 韩国av一区二区三区在线观看 | 欧美日韩免费在线观看视频 | 福利视频一区二区 | 欧美在线视频精品 | 精品国产一区二区三区免费 | 国产精品综合久久久久久 | 99热这里有 | 综合精品在线 | 91精选| 色干干| 人人澡超碰碰97碰碰碰软件 | 国产一级在线视频 | www.神马久久| 一区二区三区 中文字幕 | 中文字幕精品一区二区精品 | 午夜精品一区二区三区视频免费看 | 在线观看精品一区 | 在线影视 一区 二区 三区 | 天天操天天干天天操天天干 | 亚州精品在线视频 | 国产精品一区二区在线观看免费 | 国产精品久久中文字幕 | 日韩欧美在线视频一区二区三区 | 中文字幕一区二区三区四区 | 99久久精品久久久久久清纯 | 免费观看特级毛片 | 在线观看日韩av | 91av电影在线观看 | 亚洲综合在线观看视频 | 狠狠干婷婷色 | 婷婷精品视频 | 久久婷婷视频 | 啪啪资源 | 五月开心网 | 在线观看成人网 | 色播五月激情五月 | 97av影院| 国产福利a | 日韩精品视频在线免费观看 | a午夜在线 | 91视频免费看网站 | 91女子私密保健养生少妇 | 一性一交视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 久久看片网 | 国产高清视频色在线www | 91精品亚洲影视在线观看 | 色人久久| 日日添夜夜添 | www.久久色.com | 婷婷激情网站 | 国产伦理久久精品久久久久_ | 999久久久久久久久 69av视频在线观看 | 91精品国产91久久久久福利 | 日本久久中文 | 成人资源在线观看 | 在线中文字母电影观看 | 综合天天久久 | 国内成人精品2018免费看 | 久久黄色片子 | 久久久久成人精品 | 91夫妻自拍| 国产尤物视频在线 | 97福利在线观看 | 97视频免费观看 | 日本成人中文字幕在线观看 | 一级黄色免费网站 | 精品国产一区二区久久 | 久久免费视频2 | 六月色 | 极品国产91在线网站 | 91在线精品一区二区 | 黄色美女免费网站 | 国产精品一区二区美女视频免费看 | 日日干天天爽 | www黄免费 | 综合久久一本 | 中文字幕在线观看国产 | v片在线播放 | 黄色亚洲 | 成人午夜免费剧场 | 婷婷国产视频 | 日本精品一 | 精品久久久亚洲 | 日本中文字幕视频 | 区一区二区三在线观看 | 国产精品一区二区白浆 | 亚洲成人av在线电影 | 深爱激情久久 | 久久一精品| 91人人揉日日捏人人看 | 五月天天av | 亚洲高清在线 | 亚洲综合在线一区二区三区 | 欧美大片mv免费 | 成人在线视频一区 | 亚洲伊人天堂 | 亚州精品成人 | 天天操天天操天天操天天操天天操天天操 | 国产精品美女久久久久久久久久久 | 欧美精品久久久久久久 | 欧美一级免费 | 99精品欧美一区二区三区 | 99人久久精品视频最新地址 | av观看网站 | 一区二区三区中文字幕在线 | 国产亚洲精品福利 | 99精品免费视频 | 99在线高清视频在线播放 | 九九爱免费视频 | 69国产成人综合久久精品欧美 | 日韩视频中文字幕在线观看 | 中文字幕视频三区 | 天天天天色射综合 | 国产小视频免费在线网址 | 在线看一级片 | 天天操天天舔天天干 | 国产韩国日本高清视频 | 婷婷干五月 | 国产在线精品一区二区 | 亚洲第一成网站 | 天天操天天射天天爽 | 一区二区网 | 亚洲国产日韩一区 | 黄在线免费观看 | 中文字幕在线看视频 | 国产精品成人免费精品自在线观看 | 久久婷婷五月综合色丁香 | 伊人丁香 | 91精品国自产拍天天拍 | 午夜视频在线观看一区二区三区 | 国产精品麻豆视频 | 亚洲国产福利视频 | 中文字幕91视频 | 伊人久在线 | 国产成人精品综合久久久久99 | 欧美成人h版在线观看 | 久久精品欧美一区 | 国产最新在线 | 国产精品成人一区二区 | 亚洲欧美视频在线 | 激情五月婷婷激情 | 欧美一级视频免费看 | 99精品在线播放 | 天天操夜 | 97av视频 | 97爱爱爱 | 美女黄网久久 | 日韩高清免费在线观看 | 91黄色在线观看 | 国产成人专区 | 狠狠干天天射 | 免费视频一区二区 | 一区二区三区四区久久 | 手机看片| 精品视频成人 | 成人永久免费 | 中文字幕在线观看一区 | 久久不卡av | 亚洲人成人在线 | 久久久综合精品 | 天天射射天天 | 99久久精品一区二区成人 | 欧洲激情在线 | 国产精品18毛片一区二区 | 精品一区二区三区四区在线 | 国产精品美女网站 | 成年人免费在线 | 国产精品密入口果冻 | 日日草天天干 | 91插插视频 | 亚洲激情 在线 | 成人超碰在线 | 草久草久| 成人在线观看免费 | 久草在线高清 | 91高清免费看 | 国产精品一区二区果冻传媒 | 久久免费视频这里只有精品 | 亚洲黄色小说网址 |