我用Python分析1585家電商車厘子銷售數(shù)據(jù),發(fā)現(xiàn)這些秘密

作者:J哥
來源:菜J學Python(ID:caijxuepy)

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()import?pandas?as?pd
import?numpy?as?np
df?=?pd.read_csv('/菜J學Python/淘寶/車厘子.csv',header=None,
?????????????????names=['商品名稱','商品價格','付款人數(shù)','店鋪名稱','發(fā)貨地址'])?#添加字段名稱
df.sample(5)?
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ā)貨地址有缺失值 付款人數(shù)需做提取 發(fā)貨地址需做分割 自定義索引并降序
#剔除缺失記錄
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')??#?轉化數(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)?#重置索引







結語


評論
圖片
表情
