天天看點

怎麼用python電商文本挖掘?(2)

以驅蟲市場資料為例,挖掘某店鋪新的業務方向和市場增長點。

聯系微信sinoleadgolf

這是上一節(1)中最終得到的可用的完整資料。

怎麼用python電商文本挖掘?(2)

4.分析整個市場的總體趨勢

為求整體市場,對行求和,并提取時間中的年份。新增了colsums和year兩列。

怎麼用python電商文本挖掘?(2)

按照年分組求和

怎麼用python電商文本挖掘?(2)

固定代碼處理字型,可以不用管。

plt.rcParams['font.sans-serif']='simhei'
plt.rcParams['axes.unicode_minus']=False
           

看趨勢 畫折線圖

# replot表示描述相關性的圖示,height表圖形的高度
sns.relplot('year','colsums',kind='line',marker='o',data=byyear,height=4)
plt.title('近三年驅蟲市場趨勢') # 加标題
plt.xticks(byyear.year,rotation=45) # 定義x軸标簽
plt.xlabel('年份') # 定義x軸标題
plt.ylabel('總交易額') # 定義y軸标題
plt.show()
           
怎麼用python電商文本挖掘?(2)

圖中可以看出 整體市場上升趨勢 整體不錯。

接下來分析各類目市場銷量趨勢分析,即看子市場情況。

# 圖形大小
f, ax = plt.subplots(figsize=(10, 6))
# 線圖中,由于有大于6個的分類,而線型最多6中,是以這裡不區分線型,即dashes=False
sns.lineplot(data=byyear.set_index('year').iloc[:,:-1],dashes=False,marker='^')
plt.title('近三年各類目市場銷量趨勢分析')
plt.xticks(byyear.year,rotation=45)
# 在指定位置加文本
for a,b in zip(byyear.year,byyear['滅鼠殺蟲劑']):
    plt.text(a,b,'%.3e'% b , ha='center',va='bottom',size=12)
plt.xlabel('年份')
plt.ylabel('總交易額')
plt.show()
           
怎麼用python電商文本挖掘?(2)

可以看到 ‘滅鼠殺蟲劑’這個子市場 在 銷售占比 和 增長趨勢上表現不錯,那麼再從占比次元 詳細看一下。

byyear_per.plot(kind='bar',stacked=True,figsize=(10,8),colormap='tab10')
for a,b in zip(range(len(byyear_per)),byyear_per['滅鼠殺蟲劑']):
    plt.text(a,b/2,f'{b*100:.2f}%', ha='center',va='bottom',size=16,color='white')
plt.xlabel('年份')
plt.ylabel('總交易額占比')
plt.title('近三年各類目市場銷量占比')
plt.show()
           
怎麼用python電商文本挖掘?(2)

随着年份的變化,‘滅鼠殺蟲劑’的市場占比穩定在60%左右.

得到小的結論:

整體驅蟲市場處于快速增長階段,趨于成長期到成熟期

其中滅鼠殺蟲市場佔有率較大,可以重點關注和投資。

5.分析市場的壟斷程度

引入一個名額HHI名額,衡量壟斷程度 即 集中度,1-HHI就是基尼系數,可以百度了解相關内容。

讀取top100品牌檔案,并檢視缺失值。

怎麼用python電商文本挖掘?(2)

生成交易指數占比 新列

df1['交易指數占比'] = df1['交易指數']/df1['交易指數'].sum()
df1.head()
           
怎麼用python電商文本挖掘?(2)
怎麼用python電商文本挖掘?(2)

計算HHI

怎麼用python電商文本挖掘?(2)

0.00135 表示市場屬于不集中度。

以上我們得出小結:從市場交易額和增長來看,整體市場趨勢向好,競争對手沒有形成壟斷局面,其中的 滅鼠殺蟲劑子市場 占比和增長幅度 表現不錯。

6.子市場 - 滅鼠殺蟲劑 機會點分析

讀資料,合并檔案,清洗等步驟前面有提過,這裡我們就省略其中的步驟,直接 給出代碼,和最後能用的資料。

filenames1 = glob.glob('*.xlsx')
dfs1 = [pd.read_excel(i) for i in filenames1]
df2 = pd.concat(dfs1,sort=False)
df2.info()
df2.isna().mean()
ind1 = df2.isna().mean()>0.98
sum(ind1)
這裡認為如果一個特征的缺失值占比超過98%,則從全資料的角度看沒有意義,直接删
df20 = df2.loc[:,~ind1]
ind2 = np.array([len(df20[i].unique())==1 for i in df20.columns])
df21 = df20.loc[:,~ind2]
特征值完全一緻的話也沒有意義,可以直接删
依據邏輯删除不可能會用到的列,例如連結
藥品登記号後的列缺失值占比高,市場分析意義不大,故都不需要
ind3 = df21.columns.get_loc('藥品登記号')
df22 = df21.iloc[:,:ind3]
useless = ['時間','連結','主圖連結','主圖視訊連結',
           '頁碼','排名','寶貝标題','運費','下架時間','旺旺']
df23 = df22.drop(columns=useless)
df23.dtypes
其中寶貝ID列是整數不合理,這裡将類型改為object
df23 = df23.astype({'寶貝ID':'object'})
df23.reset_index(drop=True,inplace=True)
df23.describe()
df23.head()
           
怎麼用python電商文本挖掘?(2)

進一步分析滅鼠殺蟲劑市場中最受歡迎的産品類别,然後細分價格段,再對對應屬性進一步分析:

對銷售額 按照類别分組,看到 滅鼠和蟑螂的 額度比較高。

怎麼用python電商文本挖掘?(2)

為了更準确的描述 畫一張餅圖。

怎麼用python電商文本挖掘?(2)

這裡我們便明确了 滅鼠 這個産品類别是 最好的選擇。