Python數(shù)據(jù)分析之分析千萬(wàn)級(jí)淘寶數(shù)據(jù)
1、項(xiàng)目背景與分析說(shuō)明
1)項(xiàng)目背景
網(wǎng)購(gòu)已經(jīng)成為人們生活不可或缺的一部分,本次項(xiàng)目基于淘寶app平臺(tái)數(shù)據(jù),通過(guò)相關(guān)指標(biāo)對(duì)用戶(hù)行為進(jìn)行分析,從而探索用戶(hù)相關(guān)行為模式。
2)數(shù)據(jù)和字段說(shuō)明
本文使用的數(shù)據(jù)集包含了2014.11.18到2014.12.18之間,淘寶App移動(dòng)端一個(gè)月內(nèi)的用戶(hù)行為數(shù)據(jù)。該數(shù)據(jù)有12256906天記錄,共6列數(shù)據(jù)。
- user_id:用戶(hù)身份
- item_id:商品id
- behavior_type:用戶(hù)行為類(lèi)型(包括點(diǎn)擊、收藏、加入購(gòu)物車(chē)、支付四種行為,分別用數(shù)字1、2、3、4表示)
- user_geohash:地理位置
- item_category:品類(lèi)id(商品所屬的分類(lèi))
- time:用戶(hù)行為發(fā)生的時(shí)間
3)分析的維度
流量指標(biāo)分析
用戶(hù)行為分析
漏斗流失分析
用戶(hù)價(jià)值RFM分析
4)電商常用分析方法
5)什么是漏斗分析?
“漏斗分析”是一套流程式數(shù)據(jù)分析,它能夠科學(xué)反映用戶(hù)行為狀態(tài),以及從起點(diǎn)到終點(diǎn)各階段用戶(hù)轉(zhuǎn)化率情況的一種重要分析模型。
2、導(dǎo)入相關(guān)庫(kù)
import numpy as np import pandas as pd import matplotlib as ?mpl import matplotlib.pyplot as ?plt import seaborn as sns import warnings # 設(shè)置為seaborn繪圖風(fēng)格 sns.set(style="darkgrid",font_scale=1.5) # 用來(lái)顯示中文標(biāo)簽 mpl.rcParams["font.family"] = "SimHei" # 用來(lái)顯示負(fù)號(hào) mpl.rcParams["axes.unicode_minus"] = False # 有時(shí)候運(yùn)行代碼時(shí)會(huì)有很多warning輸出,像提醒新版本之類(lèi)的,如果不想這些亂糟糟的輸出,可以使用如下代碼 warnings.filterwarnings('ignore')
3、數(shù)據(jù)預(yù)覽、數(shù)據(jù)預(yù)處理
# 注意:str是為了將所有的字段都讀成字符串 df = pd.read_csv("taobao.csv",dtype=str) df.shape df.info() df.sample(5)
結(jié)果如下:
1)計(jì)算缺失率
# 由于地理位置的缺失值太多,我們也沒(méi)辦法填充,因此先刪除這一列 df.apply(lambda x:sum(x.isnull())/len(x),axis=0)
結(jié)果如下:
2)刪除地理位置這一列
df.drop(["user_geohash"],axis=1,inplace=True)
3)處理時(shí)間time列,將該列拆分為date日期列,和hour小時(shí)列
df["date"] = df.time.str[0:-3] df["hour"] = df.time.str[-2:] df.sample(5)
結(jié)果如下:
4)將time、date列都變?yōu)闃?biāo)準(zhǔn)日期格式,將hour列變?yōu)閕nt格式
df["date"] = pd.to_datetime(df["date"]) df["time"] = pd.to_datetime(df["time"]) df["hour"] = df["hour"].astype(int) df.dtypes
結(jié)果如下:
5)將數(shù)據(jù)按照time列,升序排列
df.sort_values(by="time",ascending=True,inplace=True) df.head()
解果如下:
6)刪除原始索引,重新生成新的索引
df.reset_index(drop=True,inplace=True) df.head()
結(jié)果如下:
知識(shí)點(diǎn):注意reset_index()中傳入?yún)?shù)drop的這種用法。
7)使用describe()函數(shù)查看數(shù)據(jù)的分布,這里使用了一個(gè)include參數(shù),注意一下
# 查看所有object字符串類(lèi)型的數(shù)據(jù)分布狀況 df.describe(include=["object"]) # describe()默認(rèn)只會(huì)統(tǒng)計(jì)數(shù)值型變量的數(shù)據(jù)分布情況。 df.describe() # 查看所有數(shù)據(jù)類(lèi)型的數(shù)據(jù)分布狀況 df.describe(include="all")
結(jié)果如下:
知識(shí)點(diǎn):注意describe()函數(shù)中傳入?yún)?shù)include的用法。
8)對(duì)時(shí)間數(shù)據(jù)做一個(gè)概覽
df["date"].unique()
結(jié)果如下:
4、模型構(gòu)建
1)流量指標(biāo)的處理
pv:指的是頁(yè)面總瀏覽量。每個(gè)用戶(hù)每刷新一次網(wǎng)頁(yè),就會(huì)增加一次pv。
uv:指的是獨(dú)立訪(fǎng)客數(shù)。一臺(tái)電腦一個(gè)ip也就是一個(gè)獨(dú)立訪(fǎng)客。實(shí)際分析中,我們都是認(rèn)為每個(gè)人只使用一臺(tái)電腦,即每一個(gè)獨(dú)立訪(fǎng)客代表一個(gè)用戶(hù)。
① 總計(jì)pv和uv
total_pv = df["user_id"].count() total_pv total_uv = df["user_id"].nunique() total_uv
結(jié)果如下:
結(jié)果分析:從圖中可以看到,該網(wǎng)站頁(yè)面的總瀏覽量為12256906次,該頁(yè)面的獨(dú)立訪(fǎng)客數(shù)共有10000個(gè)。
② 日期維度下的uv和pv:uv表示頁(yè)面總瀏覽量,pv表示獨(dú)立訪(fǎng)客數(shù)
pv_daily = df.groupby("date")['user_id'].count() pv_daily.head(5) uv_daily = df.groupby("date")['user_id'].apply(lambda x: x.nunique()) # uv_daily = df.groupby("date")['user_id'].apply(lambda x: x.drop_duplicates().count()) uv_daily.head() pv_uv_daily = pd.concat([pv_daily,uv_daily],axis=1) pv_uv_daily.columns = ["pv","uv"] pv_uv_daily.head() # 繪圖代碼如下 plt.figure(figsize=(16,10)) plt.subplot(211) plt.plot(pv_daily,c="r") plt.title("每天頁(yè)面的總訪(fǎng)問(wèn)量(PV)") plt.subplot(212) plt.plot(uv_daily,c="g") plt.title("每天頁(yè)面的獨(dú)立訪(fǎng)客數(shù)(UV)") #plt.suptitle("PV和UV的變化趨勢(shì)") plt.tight_layout() plt.savefig("PV和UV的變化趨勢(shì)",dpi=300) plt.show()
結(jié)果如下:
繪圖如下:
結(jié)果分析:從圖中可以看出,pv和uv數(shù)據(jù)呈現(xiàn)高度的正相關(guān)。雙12前后,pv和uv都在350000-400000之間波動(dòng),雙十二的時(shí)候,頁(yè)面訪(fǎng)問(wèn)量急劇上升,證明這次活動(dòng)的效果很好。
③ 時(shí)間維度下的pv和uv
pv_hour = df.groupby("hour")['user_id'].count() pv_hour.head() uv_hour = df.groupby("hour")['user_id'].apply(lambda x: x.nunique()) uv_hour.head() pv_uv_hour = pd.concat([pv_hour,uv_hour],axis=1) pv_uv_hour.columns = ["pv_hour","uv_hour"] pv_uv_hour.head() # 繪圖代碼如下 plt.figure(figsize=(16,10)) pv_uv_hour["pv_hour"].plot(c="steelblue",label="每個(gè)小時(shí)的頁(yè)面總訪(fǎng)問(wèn)量") plt.ylabel("頁(yè)面訪(fǎng)問(wèn)量") pv_uv_hour["uv_hour"].plot(c="red",label="每個(gè)小時(shí)的頁(yè)面獨(dú)立訪(fǎng)客數(shù)",secondary_y=True) plt.ylabel("頁(yè)面獨(dú)立訪(fǎng)客數(shù)") plt.xticks(range(0,24),pv_uv_hour.index) plt.legend(loc="best") plt.grid(True) plt.tight_layout() plt.savefig("每個(gè)小時(shí)的PV和UV的變化趨勢(shì)",dpi=300) plt.show()
結(jié)果如下:
繪圖如下:
結(jié)果分析:從圖中可以看出,晚上22:00-凌晨5:00,頁(yè)面的訪(fǎng)問(wèn)用戶(hù)數(shù)量和訪(fǎng)問(wèn)量逐漸降低,該時(shí)間段很多人都是處在休息之中。而從早上6:00-10:00用戶(hù)數(shù)量逐漸呈現(xiàn)上升趨勢(shì),10:00-18:00有一個(gè)比較平穩(wěn)的狀態(tài),這個(gè)時(shí)間段是正常的上班時(shí)間。但是18:00以后,一直到晚上22:00,用戶(hù)劇烈激增,一直達(dá)到一天中訪(fǎng)問(wèn)用戶(hù)數(shù)的最大值。運(yùn)營(yíng)人員可以參考用戶(hù)的活躍時(shí)間段,采取一些促銷(xiāo)活動(dòng)。
2)用戶(hù)行為指標(biāo)
① 總計(jì)點(diǎn)擊、收藏、添加購(gòu)物車(chē)、支付用戶(hù)的情況
type_1 = df[df['behavior_type']=="1"]["user_id"].count() type_2 = df[df['behavior_type']=="2"]["user_id"].count() type_3 = df[df['behavior_type']=="3"]["user_id"].count() type_4 = df[df['behavior_type']=="4"]["user_id"].count() print("點(diǎn)擊用戶(hù):",type_1) print("收藏用戶(hù):",type_2) print("添加購(gòu)物車(chē)用戶(hù):",type_3) print("支付用戶(hù):",type_4)
結(jié)果如下:
結(jié)果分析:從圖中可以看到,用戶(hù)進(jìn)行頁(yè)面點(diǎn)擊–>收藏和加如購(gòu)物車(chē)–>支付,逐漸呈現(xiàn)下降趨勢(shì)。關(guān)于這方面的分析,將在下面的漏斗圖中繼續(xù)更為深入的說(shuō)明。
② 日期維度下,點(diǎn)擊、收藏、添加購(gòu)物車(chē)、支付用戶(hù)的情況
pv_date_type = pd.pivot_table(df,index='date', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?columns='behavior_type', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?values='user_id', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?aggfunc=np.size) pv_date_type.columns = ["點(diǎn)擊","收藏","加入購(gòu)物車(chē)","支付"] pv_date_type.head() # 繪圖如下 plt.figure(figsize=(16,10)) sns.lineplot(data=pv_date_type[['收藏', '加入購(gòu)物車(chē)', '支付']]) plt.tight_layout() plt.savefig("不同日期不同用戶(hù)行為的PV變化趨勢(shì)",dpi=300) plt.show()
結(jié)果如下:
繪圖如下:
③ 時(shí)間維度下,點(diǎn)擊、收藏、添加購(gòu)物車(chē)、支付用戶(hù)的情況
pv_hour_type = pd.pivot_table(df,index='hour', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?columns='behavior_type', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?values='user_id', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?aggfunc=np.size) pv_hour_type.columns = ["點(diǎn)擊","收藏","加入購(gòu)物車(chē)","支付"] pv_hour_type.head() # 繪圖如下 plt.figure(figsize=(16,10)) sns.lineplot(data=pv_hour_type[['收藏', '加入購(gòu)物車(chē)', '支付']]) pv_hour_type["點(diǎn)擊"].plot(c="pink",linewidth=5,label="點(diǎn)擊",secondary_y=True) plt.legend(loc="best") plt.tight_layout() plt.savefig("不同小時(shí)不同用戶(hù)行為的PV變化趨勢(shì)",dpi=300) plt.show()
結(jié)果如下:
繪圖如下:
④ 支付次數(shù)前10的用戶(hù)行為細(xì)分
df["user_id1"] = df["user_id"] buy_first = pd.pivot_table(df,index='user_id', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?columns='behavior_type', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?values='user_id1', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?aggfunc="count") buy_first.columns = ["點(diǎn)擊","收藏","加入購(gòu)物車(chē)","支付"] buy_first_10 = buy_first.sort_values(by="支付",ascending=False)[:10] buy_first_10 # 繪制圖形如下 plt.figure(figsize=(16,10)) plt.subplot(311) plt.plot(buy_first_10["點(diǎn)擊"],c="r") plt.title("點(diǎn)擊數(shù)的變化趨勢(shì)") plt.subplot(312) plt.plot(buy_first_10["收藏"],c="g") plt.title("收藏?cái)?shù)的變化趨勢(shì)") plt.subplot(313) plt.plot(buy_first_10["加入購(gòu)物車(chē)"],c="b") plt.title("加入購(gòu)物車(chē)的變化趨勢(shì)") plt.xticks(np.arange(10),buy_first_10.index) plt.tight_layout() plt.savefig("支付數(shù)前10的用戶(hù),在點(diǎn)擊、收藏、加入購(gòu)物車(chē)的變化趨勢(shì)",dpi=300) plt.show()
結(jié)果如下:
繪圖如下:
結(jié)果分析:通過(guò)這個(gè)分析,我們可以看出,購(gòu)買(mǎi)次數(shù)最多的用戶(hù),點(diǎn)擊、收藏、加入購(gòu)車(chē)的次數(shù)不一定是最多的,
⑤ ARPPU分析:平均每用戶(hù)收入,即可通過(guò)“總收入/AU” 計(jì)算得出
total_custome = df[df['behavior_type'] == "4"].groupby(["date","user_id"])["behavior_type"].count()\ ? ? ? ? ? ? ? ? .reset_index().rename(columns={"behavior_type":"total"}) total_custome.head() total_custome2 = total_custome.groupby("date").sum()["total"]/\ ? ? ? ? ? ? ? ? ?total_custome.groupby("date").count()["total"] total_custome2.head(10) # 繪圖如下 x = len(total_custome2.index.astype(str)) y = total_custome2.index.astype(str) plt.plot(total_custome2.values) plt.xticks(range(0,30,7),[y[i] for i in range(0,x,7)],rotation=90) plt.title("每天的人均消費(fèi)次數(shù)") plt.tight_layout() plt.savefig("每天的人均消費(fèi)次數(shù)",dpi=300) plt.show()
結(jié)果如下:
繪圖如下:
⑥ 日ARPU分析:表示的是平均每用戶(hù)收入。ARPU = 總收入/AU得到
df["operation"] = 1 aa = df.groupby(["date","user_id",'behavior_type'])["operation"].count().\ ? ? ?reset_index().rename(columns={"operation":"total"}) aa.head(10) aa1 = aa.groupby("date").apply(lambda x: x[x["behavior_type"]=="4"]["total"].sum()/x["user_id"].nunique()) aa1.head(10) # 繪圖如下 x = len(aa1.index.astype(str)) y = aa1.index.astype(str) plt.plot(aa1.values) plt.xticks(range(0,30,7),[y[i] for i in range(0,x,7)],rotation=90) plt.title("每天的活躍用戶(hù)消費(fèi)次數(shù)") plt.tight_layout() plt.savefig("每天的活躍用戶(hù)消費(fèi)次數(shù)",dpi=300) plt.show()
結(jié)果如下:
繪圖如下:
⑦ 付費(fèi)率PUR = APA/AU,這里用【消費(fèi)人數(shù) / 活躍用戶(hù)人數(shù)】代替
rate = aa.groupby("date").apply(lambda x: x[x["behavior_type"]=="4"]["total"].count()/x["user_id"].nunique()) rate.head(10) # 繪圖如下 x = len(rate.index.astype(str)) y = rate.index.astype(str) plt.plot(rate.values) plt.xticks(range(0,30,7),[y[i] for i in range(0,x,7)],rotation=90) plt.title("付費(fèi)率分析") plt.tight_layout() plt.savefig("付費(fèi)率分析",dpi=300) plt.show()
結(jié)果如下:
⑧ 復(fù)購(gòu)情況分析(復(fù)購(gòu)率)
re_buy = df[df["behavior_type"]=="4"].groupby("user_id")["date"].apply(lambda x: x.nunique()) print(len(re_buy)) re_buy[re_buy >= 2].count() / re_buy.count()
結(jié)果如下:
3)漏斗分析
df_count = df.groupby("behavior_type").size().reset_index().\ rename(columns={"behavior_type":"環(huán)節(jié)",0:"人數(shù)"}) type_dict = { "1":"點(diǎn)擊", "2":"收藏", "3":"加入購(gòu)物車(chē)", "4":"支付" } df_count["環(huán)節(jié)"] = df_count["環(huán)節(jié)"].map(type_dict) a = df_count.iloc[0]["人數(shù)"] b = df_count.iloc[1]["人數(shù)"] c = df_count.iloc[2]["人數(shù)"] d = df_count.iloc[3]["人數(shù)"] funnel = pd.DataFrame({"環(huán)節(jié)":["點(diǎn)擊","收藏及加入購(gòu)物車(chē)","支付"],"人數(shù)":[a,b+c,d]}) funnel["總體轉(zhuǎn)化率"] = [i/funnel["人數(shù)"][0] for i in funnel["人數(shù)"]] funnel["單一轉(zhuǎn)化率"] = np.array([1.0,2.0,3.0]) for i in range(0,len(funnel["人數(shù)"])): if i == 0: funnel["單一轉(zhuǎn)化率"][i] = 1.0 else: funnel["單一轉(zhuǎn)化率"][i] = funnel["人數(shù)"][i] / funnel["人數(shù)"][i-1] # 繪圖如下 import plotly.express as px import plotly.graph_objs as go trace = go.Funnel( y = ["點(diǎn)擊", "收藏及加入購(gòu)物車(chē)", "購(gòu)買(mǎi)"], x = [funnel["人數(shù)"][0], funnel["人數(shù)"][1], funnel["人數(shù)"][2]], textinfo = "value+percent initial", marker=dict(color=["deepskyblue", "lightsalmon", "tan"]), connector = {"line": {"color": "royalblue", "dash": "solid", "width": 3}}) data =[trace] fig = go.Figure(data) fig.show()
結(jié)果如下:
繪圖如下:
結(jié)果分析:由于收藏和加入購(gòu)車(chē)都是有購(gòu)買(mǎi)意向的一種用戶(hù)行為,切不分先后順序,因此我們將其合并看作一個(gè)階段。從上面的漏斗圖和funnel表可以看出,從瀏覽到具有購(gòu)買(mǎi)意向(收藏和加入購(gòu)物車(chē)),只有5%的轉(zhuǎn)化率,但是到了真正到購(gòu)買(mǎi)的轉(zhuǎn)化率只有1%,再看“單一轉(zhuǎn)化率”,從具有購(gòu)買(mǎi)意向到真正購(gòu)買(mǎi)的轉(zhuǎn)化率達(dá)到了20%。說(shuō)明從瀏覽到進(jìn)行收藏和加入購(gòu)物車(chē)的階段,是指標(biāo)提升的重要環(huán)節(jié)。
4)客戶(hù)價(jià)值分析(RFM分析)
from datetime import datetime # 最近一次購(gòu)買(mǎi)距離現(xiàn)在的天數(shù) recent_buy = df[df["behavior_type"]=="4"].groupby("user_id")["date"].\ apply(lambda x:datetime(2014,12,20) - x.sort_values().iloc[-1]).reset_index().\ rename(columns={"date":"recent"}) recent_buy["recent"] = recent_buy["recent"].apply(lambda x: x.days) recent_buy[:10] # 購(gòu)買(mǎi)次數(shù)計(jì)算 buy_freq = df[df["behavior_type"]=="4"].groupby("user_id")["date"].count().reset_index().\ rename(columns={"date":"freq"}) buy_freq[:10] # 將上述兩列數(shù)據(jù),合并起來(lái) rfm = pd.merge(recent_buy,buy_freq,on="user_id") rfm[:10] # 給不同類(lèi)型打分 r_bins = [0,5,10,15,20,50] f_bins = [1,30,60,90,120,900] rfm["r_score"] = pd.cut(rfm["recent"],bins=r_bins,labels=[5,4,3,2,1],right=False) rfm["f_score"] = pd.cut(rfm["freq"],bins=f_bins,labels=[1,2,3,4,5],right=False) for i in ["r_score","f_score"]: rfm[i] = rfm[i].astype(float) rfm.describe() # 比較各分值與各自均值的大小 rfm["r"] = np.where(rfm["r_score"]>3.943957,"高","低") rfm["f"] = np.where(rfm["f_score"]>1.133356,"高","低") # 將r和f列的字符串合并起來(lái) rfm["value"] = rfm["r"].str[:] + rfm["f"].str[:] rfm.head() # 自定義函數(shù)給用戶(hù)貼標(biāo)簽 def trans_labels(x): if x == "高高": return"重要價(jià)值客戶(hù)" elif x == "低高": return"重要喚回客戶(hù)" elif x == "高低": return"重要深耕客戶(hù)" else: return"重要挽回客戶(hù)" rfm["標(biāo)簽"] = rfm["value"].apply(trans_labels) # 計(jì)算出每個(gè)標(biāo)簽的用戶(hù)數(shù)量 rfm["標(biāo)簽"].value_counts()
結(jié)果如下:
以上就是Python數(shù)據(jù)分析之分析千萬(wàn)級(jí)淘寶數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于Python淘寶數(shù)據(jù)分析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
class類(lèi)在python中獲取金融數(shù)據(jù)的實(shí)例方法
在本篇文章里小編給大家整理了關(guān)于class類(lèi)怎樣在python中獲取金融數(shù)據(jù)的相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-12-12python?隨時(shí)間序列變動(dòng)畫(huà)圖的方法
這篇文章主要介紹了python?基礎(chǔ)繪圖之關(guān)于隨時(shí)間序列變動(dòng)的圖的畫(huà)法,首先大家要明白畫(huà)圖需要考慮的問(wèn)題,如何在圖中適當(dāng)?shù)娘@示軸標(biāo)簽的樣式和數(shù)量,詳細(xì)代碼跟隨小編一起看看吧2022-01-01Python疊加兩幅柵格圖像的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Python疊加兩幅柵格圖像的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07教你用Python寫(xiě)一個(gè)京東自動(dòng)下單搶購(gòu)腳本
很多朋友都有網(wǎng)購(gòu)搶購(gòu)限量商品的經(jīng)歷,有時(shí)候蹲點(diǎn)搶怎么也搶不到,今天小編帶你們學(xué)習(xí)怎么用Python寫(xiě)一個(gè)京東自動(dòng)下單搶購(gòu)腳本,以后再也不用拼手速拼網(wǎng)速啦,快來(lái)一起看看吧2023-03-03python 用pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能
這篇文章主要介紹了python 用pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12Python實(shí)現(xiàn)遞歸遍歷文件夾并刪除文件
本文給大家匯總了3個(gè)Python實(shí)現(xiàn)遍歷文件夾并刪除的代碼,主要是給大家分享下這3種方法的實(shí)現(xiàn)思路,有需要的小伙伴可以參考下2016-04-04淺談對(duì)python中if、elif、else的誤解
這篇文章主要介紹了淺談對(duì)python中if、elif、else的誤解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08