
大家好,我是J哥~
眾所周知,中國是智利車?yán)遄幼钪饕某隹趯?duì)象,占據(jù)了其95%的市場(chǎng)份額。
智利駐華大使館商務(wù)參贊娜塔曾表示:“2020-2021產(chǎn)季車?yán)遄訉?shí)現(xiàn)了豐收,預(yù)計(jì)今年有50萬噸左右的車?yán)遄舆M(jìn)入中國市場(chǎng)?!弊?020年12月中旬開始,智利海運(yùn)車?yán)遄雨懤m(xù)到達(dá)中國,運(yùn)輸成本較此前空運(yùn)方式大幅下滑。這意味著,國內(nèi)消費(fèi)者將能以更低的價(jià)格買到車?yán)遄?。然而,近日國?nèi)已有多地進(jìn)口車?yán)遄雍怂釞z測(cè)結(jié)果為陽性,在這種情況下,你還敢大呼“車?yán)遄幼杂伞眴幔?/p>
01 數(shù)據(jù)獲取
本文利用Python采集了淘寶網(wǎng)1585個(gè)商家車?yán)遄愉N售數(shù)據(jù),獲取到車?yán)遄拥纳唐访Q、商品價(jià)格、付款人數(shù)、店鋪名稱、發(fā)貨地址等字段。限于篇幅,爬蟲代碼僅給出主函數(shù):
def main:
browser.get('https://www.taobao.com/')
page = search_product(key_word)print(page)
get_datapage_num =70
whileint(page) != page_num:
print("-"*100)
print("正在爬取第{}頁數(shù)據(jù)".format(page_num +1))
browser.get('https://s.taobao.com/search?q={}&s={}'.format(key_word, page_num*44))
browser.implicitly_wait(10)
get_datapage_num +=1
print("數(shù)據(jù)抓取完成")
if__name__ =='__main__':
key_word ="車?yán)遄?
browser = webdriver.Chrome("./chromedriver")
main

02 數(shù)據(jù)處理
1.數(shù)據(jù)讀取并預(yù)覽
importpandasaspd
import numpyasnp
df = pd.read_csv('/菜J學(xué)Python/淘寶/車?yán)遄?csv',header=None,
names=['商品名稱','商品價(jià)格','付款人數(shù)','店鋪名稱','發(fā)貨地址'])#添加字段名稱
df.sample(5)
2.查看數(shù)據(jù)信息
df.info
<class'pandas.core.frame.DataFrame'>
Int64Index:1595entries,0to1674
Datacolumns(total5columns):
#ColumnNon-CountDtype
----------------------------
0商品名稱1595non-object
1商品價(jià)格1595non-float64
2付款人數(shù)1595non-object
3店鋪名稱1595non-object
4發(fā)貨地址1585 non- object
dtypes:float64(1),object(4)
memoryusage:74.8+KB
發(fā)現(xiàn)數(shù)據(jù)存在以下幾個(gè)問題:
(1)發(fā)貨地址有缺失值
(2)付款人數(shù)需做提取
(3)發(fā)貨地址需做分割
(4)自定義索引并降序
3.數(shù)據(jù)清洗
#剔除缺失記錄
df.dropna(axis=0, how='any', inplace=True)
#從發(fā)貨地址字段中切分出省份和城市df["省份"] = df["發(fā)貨地址"].str.split(' ',expand=True)[0] #expand=True可以把用分割的內(nèi)容直接分列
df["城市"] = df["發(fā)貨地址"].str.split(' ',expand=True)[1] #提取城市
df["城市"].fillna(df["省份"], inplace=True) #城市字段空值用省份非空值填充
#用正則表達(dá)式從付款人數(shù)中提取數(shù)字importre
df['數(shù)字'] = [re.findall(r'(\d+\.{0,1}\d*)', i)[0]foriindf['付款人數(shù)']] # 提取數(shù)值
df['數(shù)字'] = df['數(shù)字'].astype('float') # 轉(zhuǎn)化數(shù)值型
df['單位'] = [''.join(re.findall(r'(萬)', i))foriindf['付款人數(shù)']] # 提取單位(萬)
df['單位'] = df['單位'].apply(lambda x:10000ifx=='萬'else1)
df['付款人數(shù)'] = df['數(shù)字'] * df['單位'] # 計(jì)算付款人數(shù)
df.drop(['發(fā)貨地址','數(shù)字','單位'], axis=1, inplace=True) # 刪除多余的列
#按商品價(jià)格降序并重置索引df = df.sort_values(by="商品價(jià)格", axis=0, ascending=False) #降序
df = df.reset_index(drop=True) #重置索引
清洗后,數(shù)據(jù)預(yù)覽如下:

03 數(shù)據(jù)可視化
在以往的數(shù)據(jù)可視化中,常常以Python可視化庫作圖。而本文將嘗試用Excel進(jìn)行車?yán)遄訑?shù)據(jù)可視化,因?yàn)樵诶L圖方面,Excel完全不輸Python!
1.國內(nèi)哪些地方車?yán)遄淤u的最火?

利用省份和付款人數(shù)字段數(shù)據(jù)制作地圖,發(fā)現(xiàn)上海、浙江和廣東等地車?yán)遄愉N售量最大,西藏、青海和內(nèi)蒙古銷量較小。沿海地區(qū)的經(jīng)濟(jì)和人口優(yōu)勢(shì),成為車?yán)遄又饕南M(fèi)市場(chǎng)。

車?yán)遄幼鳛椤懊餍撬保环频膬r(jià)格常常讓打工人望而卻步。根據(jù)國家統(tǒng)計(jì)總局發(fā)布的最新數(shù)據(jù),上海人均可支配收入居首,超過7萬元,自然更容易實(shí)現(xiàn)“車?yán)遄幼杂伞?。北京雖然收入較高,但可能受疫情影響較大,車?yán)遄愉N量并不多。

2.車?yán)遄拥降子卸噘F?

由上圖可知,40%的車?yán)遄觾r(jià)格在201-500元之間(淘寶掛牌價(jià),非每斤價(jià)格),50元以下的車?yán)遄诱急炔坏?%,我表示有被貴到,你呢?如果你不嫌貴,那我?guī)湍阏业揭患遥赡芊夏愕男枨?,如下?/p>

3.哪些店鋪賣的最好?

從銷量較高的淘寶店鋪來看,基本都是旗艦店,看來大家對(duì)店鋪品牌度關(guān)注較多。福瑞達(dá)旗艦店月銷量超6萬,名副其實(shí)車?yán)遄愉N冠,百果園緊隨其后。
4.在售的車?yán)遄泳哂心男┨攸c(diǎn)?

為了了解車?yán)遄拥奶攸c(diǎn),對(duì)商品名稱字段做了文本分析,以果籃為背景繪制了車?yán)遄釉~云圖。主要的特點(diǎn)還是可以看出來的,新鮮、智利、當(dāng)季、特大等詞都是水果店家推銷的點(diǎn)。至于孕婦提及頻率這么高,有點(diǎn)納悶,于是百度之:

那么問題來了,特殊時(shí)期,我們打工人能不能剁手買車?yán)遄??截至目前,根?jù)中國疾控中心公布的消息,目前并沒有發(fā)現(xiàn)因?yàn)槭秤眠M(jìn)口冷鏈?zhǔn)称范腥拘鹿诜窝椎牟±?。因此?duì)于普通消費(fèi)者來說,無須過于恐慌。當(dāng)然如果你確實(shí)非常焦慮的話,疫情期間也可以多選擇國內(nèi)生產(chǎn)的食品。
結(jié)語
1.本數(shù)據(jù)分析只做學(xué)習(xí)研究之用途,提供的結(jié)論僅供參考,還請(qǐng)獨(dú)立思考。
福利
入門Python的最強(qiáng)三件套《ThinkPython》、《簡(jiǎn)明Python教程》、《Python進(jìn)階》的PDF電子版已打包提供給大家,關(guān)注同名公號(hào)/Python小白集訓(xùn)營/回復(fù)/電子書/即可自動(dòng)領(lǐng)取。
