大家好,我是J哥~
眾所周知,中國是智利車厘子最主要的出口對象,占據了其95%的市場份額。
智利駐華大使館商務參贊娜塔曾表示:“2020-2021產季車厘子實現了豐收,預計今年有50萬噸左右的車厘子進入中國市場。”自2020年12月中旬開始,智利海運車厘子陸續到達中國,運輸成本較此前空運方式大幅下滑。這意味著,國內消費者將能以更低的價格買到車厘子。然而,近日國內已有多地進口車厘子核酸檢測結果為陽性,在這種情況下,你還敢大呼“車厘子自由”嗎?
01 數據獲取
本文利用Python采集了淘寶網1585個商家車厘子銷售數據,獲取到車厘子的商品名稱、商品價格、付款人數、店鋪名稱、發貨地址等字段。限于篇幅,爬蟲代碼僅給出主函數:
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("正在爬取第{}頁數據".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("數據抓取完成")
if__name__ =='__main__':
key_word ="車厘子"
browser = webdriver.Chrome("./chromedriver")
main
02 數據處理
1.數據讀取并預覽
importpandasaspd
import numpyasnp
df = pd.read_csv('/菜J學Python/淘寶/車厘子.csv',header=None,
names=['商品名稱','商品價格','付款人數','店鋪名稱','發貨地址'])#添加字段名稱
df.sample(5)
2.查看數據信息
df.info
<class'pandas.core.frame.DataFrame'>
Int64Index:1595entries,0to1674
Datacolumns(total5columns):
#ColumnNon-CountDtype
----------------------------
0商品名稱1595non-object
1商品價格1595non-float64
2付款人數1595non-object
3店鋪名稱1595non-object
4發貨地址1585 non- object
dtypes:float64(1),object(4)
memoryusage:74.8+KB
發現數據存在以下幾個問題:
(1)發貨地址有缺失值
(2)付款人數需做提取
(3)發貨地址需做分割
(4)自定義索引并降序
3.數據清洗
#剔除缺失記錄
df.dropna(axis=0, how='any', inplace=True)
#從發貨地址字段中切分出省份和城市df["省份"] = df["發貨地址"].str.split(' ',expand=True)[0] #expand=True可以把用分割的內容直接分列
df["城市"] = df["發貨地址"].str.split(' ',expand=True)[1] #提取城市
df["城市"].fillna(df["省份"], inplace=True) #城市字段空值用省份非空值填充
#用正則表達式從付款人數中提取數字importre
df['數字'] = [re.findall(r'(\d+\.{0,1}\d*)', i)[0]foriindf['付款人數']] # 提取數值
df['數字'] = df['數字'].astype('float') # 轉化數值型
df['單位'] = [''.join(re.findall(r'(萬)', i))foriindf['付款人數']] # 提取單位(萬)
df['單位'] = df['單位'].apply(lambda x:10000ifx=='萬'else1)
df['付款人數'] = df['數字'] * df['單位'] # 計算付款人數
df.drop(['發貨地址','數字','單位'], axis=1, inplace=True) # 刪除多余的列
#按商品價格降序并重置索引df = df.sort_values(by="商品價格", axis=0, ascending=False) #降序
df = df.reset_index(drop=True) #重置索引
清洗后,數據預覽如下:
03 數據可視化
在以往的數據可視化中,常常以Python可視化庫作圖。而本文將嘗試用Excel進行車厘子數據可視化,因為在繪圖方面,Excel完全不輸Python!
1.國內哪些地方車厘子賣的最火?
利用省份和付款人數字段數據制作地圖,發現上海、浙江和廣東等地車厘子銷售量最大,西藏、青海和內蒙古銷量較小。沿海地區的經濟和人口優勢,成為車厘子主要的消費市場。
車厘子作為“明星水果”,不菲的價格常常讓打工人望而卻步。根據國家統計總局發布的最新數據,上海人均可支配收入居首,超過7萬元,自然更容易實現“車厘子自由”。北京雖然收入較高,但可能受疫情影響較大,車厘子銷量并不多。
2.車厘子到底有多貴?
由上圖可知,40%的車厘子價格在201-500元之間(淘寶掛牌價,非每斤價格),50元以下的車厘子占比不到4%,我表示有被貴到,你呢?如果你不嫌貴,那我幫你找到一家,可能符合你的需求,如下:
3.哪些店鋪賣的最好?
從銷量較高的淘寶店鋪來看,基本都是旗艦店,看來大家對店鋪品牌度關注較多。福瑞達旗艦店月銷量超6萬,名副其實車厘子銷冠,百果園緊隨其后。
4.在售的車厘子具有哪些特點?
為了了解車厘子的特點,對商品名稱字段做了文本分析,以果籃為背景繪制了車厘子詞云圖。主要的特點還是可以看出來的,新鮮、智利、當季、特大等詞都是水果店家推銷的點。至于孕婦提及頻率這么高,有點納悶,于是百度之:
那么問題來了,特殊時期,我們打工人能不能剁手買車厘子?截至目前,根據中國疾控中心公布的消息,目前并沒有發現因為食用進口冷鏈食品而感染新冠肺炎的病例。因此對于普通消費者來說,無須過于恐慌。當然如果你確實非常焦慮的話,疫情期間也可以多選擇國內生產的食品。
結語
1.本數據分析只做學習研究之用途,提供的結論僅供參考,還請獨立思考。
福利
入門Python的最強三件套《ThinkPython》、《簡明Python教程》、《Python進階》的PDF電子版已打包提供給大家,關注同名公號/Python小白集訓營/回復/電子書/即可自動領取。