1.数据获取
我是在淘宝网站上爬取了我们需要的数据信息,部分数据截图如下:
不会爬虫的可以去我的python专栏里查看,那里有详细的过程。
2.分析内容
1).篮球鞋销量榜
2).篮球鞋店铺地理位置分布
3).销量和价格的关系
4).价格分布
5).运费比例占比
3.步骤
3.1数据预处理
1)去除重复值
df = pd.read_csv('./finalbasketshoes.csv')
print("原长度", len(df))
df = df.drop_duplicates()
print("取重复后长度", len(df))
2)去除缺失值
评论数有缺失值,我们用0补上。
3)数据规范化
# 数据规范化(40人付款-->40, 300+人付款-->300,1万+人付款-->10000)
def clean(x):
x = x[:-3]
if '+' in x:
x = x.replace("+","")
if '万' in x:
x = x.replace("万", "")
x = float(x) * 10000
return int(x)
df['sales'] = df['sales'].map(clean)
3.2 数据分析以及可视化
1)篮球鞋销量榜排行前十
可视化:
代码:
2)篮球鞋店铺地理位置分布前20
可视化:
代码:
df2 = df.groupby(df['location'])['title'].count()[:20]
df2.plot(kind='barh')
for a, b in enumerate(df2):
plt.text(b+1, a-0.5, b, ha='center', va='bottom')
plt.show()
3).销量和价格的关系
可视化:
代码:
df3 = df[['sales', 'price']]
plt.scatter(df3['price'], df3['sales'], s=8)
plt.xlabel('价格')
plt.ylabel('销量')
plt.show()
4).价格分布
可视化:价格分布密度图
代码:
df['price'].plot(kind='kde')
plt.xlabel('价格')
plt.legend(loc='best')
plt.show()
5).运费比例占比(是否包邮对销量的影响)
可视化:包邮商家对比
代码:
# 如果运费等于0--包邮,else不包邮
def modify_fee(x):
if(x == 0):
return '包邮'
else:
return '不包邮'
df['fee'] = df['fee'].map(modify_fee)
df4 = df.groupby(df['fee'])['title'].count().reset_index()
plt.pie(df4['title'], labels=df4['fee'], autopct='%3.2f%%', pctdistance=0.6)
plt.axis('equal')
plt.legend(loc='best')
plt.show()