数据分析案例:利用pandas清洗数据

假如你有一份数据,有淘宝店铺的一些基本数据,比如店铺名称、发货地址、付款人数、评论数、商品价格、商品名称。由于爬取的数据较乱不能直接用于数据分析,所以要先进行数据清洗。数据如下大概如下:
(关于如何爬取可以参考前面博文python爬取淘宝评论
在这里插入图片描述
加载数据

import pandas as pd
pro_data=pd.read_csv("taobaoproducts.csv",header=0)
pro_data

在这里插入图片描述
数据清洗:地址列
爬取的地址列是省+城市名,当然还有北京这种直辖市,这里我们要把城市和省份分开,分成两列,对于北京则让城市和省份都显示为北京。

def get_province(x):
    if len(x)==2:
        return x+"市"
    else:
        pro_list=x.split()
        return pro_list[0]+"省"
        
def get_city(x):
    if len(x)==2:
        return x+"市"
    else:
        pro_list=x.split()
        return pro_list[1]+"市"
    
pro_data["省份"]=pro_data["地址"].map(get_province)        
pro_data["城市"]=pro_data["地址"].map(get_city)
pro_data.head()

在这里插入图片描述

#这里还可以将函数写成三元表达式
def get_province(x):
    return x.split()[0]+"省" if len(x)>2 else x+"市"
    
pro_data["省份"]=pro_data["地址"].map(get_province)
pro_data

数据清洗:付款人数
这里只需要付款人数的数字,要把文字删除掉。

#第一种方法用str接口和正则表达式
pro_data["付款人数"]=pro_data["付款人数"].str.findall("\d+").str[0]

#第二种直接利用str接口
pro_data["付款人数"]=pro_data["付款人数"].str[:-3]

在这里插入图片描述
数据清洗:评论数
这里的评论数是小数,并且评论数会有缺失值,我们将它改为整型并填补缺失值。

pro_data["评论数"]=pro_data["评论数"].fillna(0)
pro_data["评论数"]=pro_data["评论数"].astype("int")
pro_data

最后可以做一些基础的数据分析,比如分省份计算销售量等,销售量的前五名:

turn_over=pro_data.groupby("省份")["付款人数"].agg([("销售量","sum")])
turn_over.sort_values(by="销售量",ascending=False,inplace=True)
turn_over.head()

在这里插入图片描述

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值