我用Python分析1585家電商車厘子銷售數(shù)據(jù),發(fā)現(xiàn)這些秘密
點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進行關(guān)注
回復(fù)“書籍”即可獲贈Python從入門到進階共10本電子書

圖片來源:互聯(lián)網(wǎng)
01
數(shù)據(jù)獲取
本文利用Python采集了淘寶網(wǎng)1585個商家車厘子銷售數(shù)據(jù),獲取到車厘子的商品名稱、商品價格、付款人數(shù)、店鋪名稱、發(fā)貨地址等字段。限于篇幅,爬蟲代碼僅給出主函數(shù):
def?main():
????browser.get('https://www.taobao.com/')
????page?=?search_product(key_word)
????print(page)
????get_data()
????page_num?=?70
????while?int(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_data()
????????page_num?+=?1
????print("數(shù)據(jù)抓取完成")
if?__name__?==?'__main__':
????key_word?=?"車厘子"
????browser?=?webdriver.Chrome("./chromedriver")
????main()
02
數(shù)據(jù)處理
1.數(shù)據(jù)讀取并預(yù)覽
import?pandas?as?pd
import?numpy?as?np
df?=?pd.read_csv('/菜J學Python/淘寶/車厘子.csv',header=None,
?????????????????names=['商品名稱','商品價格','付款人數(shù)','店鋪名稱','發(fā)貨地址'])?#添加字段名稱
df.sample(5)?

2.查看數(shù)據(jù)信息
df.info()
<class?'pandas.core.frame.DataFrame'>
Int64Index:?1595?entries,?0?to?1674
Data?columns?(total?5?columns):
?#???Column??Non-Null?Count??Dtype??
---??------??--------------??-----??
?0???商品名稱????1595?non-null???object?
?1???商品價格????1595?non-null???float64
?2???付款人數(shù)????1595?non-null???object?
?3???店鋪名稱????1595?non-null???object?
?4???發(fā)貨地址????1585?non-null???object?
dtypes:?float64(1),?object(4)
memory?usage:?74.8+?KB
發(fā)現(xiàn)數(shù)據(jù)存在以下幾個問題:
(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)?#城市字段空值用省份非空值填充
#用正則表達式從付款人數(shù)中提取數(shù)字
import?re
df['數(shù)字']?=?[re.findall(r'(\d+\.{0,1}\d*)',?i)[0]?for?i?in?df['付款人數(shù)']]??#?提取數(shù)值
df['數(shù)字']?=?df['數(shù)字'].astype('float')??#?轉(zhuǎn)化數(shù)值型
df['單位']?=?[''.join(re.findall(r'(萬)',?i))?for?i?in?df['付款人數(shù)']]??#?提取單位(萬)
df['單位']?=?df['單位'].apply(lambda?x:10000?if?x=='萬'?else?1)
df['付款人數(shù)']?=?df['數(shù)字']?*?df['單位']?#?計算付款人數(shù)
df.drop(['發(fā)貨地址',?'數(shù)字',?'單位'],?axis=1,?inplace=True)?#?刪除多余的列
#按商品價格降序并重置索引
df?=?df.sort_values(by="商品價格",?axis=0,?ascending=False)?#降序
df?=?df.reset_index(drop=True)?#重置索引
清洗后,數(shù)據(jù)預(yù)覽如下:

03
數(shù)據(jù)可視化
在以往的數(shù)據(jù)可視化中,常常以Python可視化庫作圖。而本文將嘗試用Excel進行車厘子數(shù)據(jù)可視化,因為在繪圖方面,Excel完全不輸Python!
1.國內(nèi)哪些地方車厘子賣的最火?


車厘子作為“明星水果”,不菲的價格常常讓打工人望而卻步。根據(jù)國家統(tǒng)計總局發(fā)布的最新數(shù)據(jù),上海人均可支配收入居首,超過7萬元,自然更容易實現(xiàn)“車厘子自由”。北京雖然收入較高,但可能受疫情影響較大,車厘子銷量并不多。

2.車厘子到底有多貴?

由上圖可知,40%的車厘子價格在201-500元之間(淘寶掛牌價,非每斤價格),50元以下的車厘子占比不到4%,我表示有被貴到,你呢?如果你不嫌貴,那我?guī)湍阏业揭患?,可能符合你的需求,如下?/span>

3.哪些店鋪賣的最好?

從銷量較高的淘寶店鋪來看,基本都是旗艦店,看來大家對店鋪品牌度關(guān)注較多。福瑞達旗艦店月銷量超6萬,名副其實車厘子銷冠,百果園緊隨其后。
4.在售的車厘子具有哪些特點?

為了了解車厘子的特點,對商品名稱字段做了文本分析,以果籃為背景繪制了車厘子詞云圖。主要的特點還是可以看出來的,新鮮、智利、當季、特大等詞都是水果店家推銷的點。至于孕婦提及頻率這么高,有點納悶,于是百度之:

那么問題來了,特殊時期,我們打工人能不能剁手買車厘子?截至目前,根據(jù)中國疾控中心公布的消息,目前并沒有發(fā)現(xiàn)因為食用進口冷鏈食品而感染新冠肺炎的病例。因此對于普通消費者來說,無須過于恐慌。當然如果你確實非常焦慮的話,疫情期間也可以多選擇國內(nèi)生產(chǎn)的食品。
結(jié)語
1.本數(shù)據(jù)分析只做學習研究之用途,提供的結(jié)論僅供參考,還請獨立思考。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學習群請在后臺回復(fù)【入群】
萬水千山總是情,點個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
