Excel适合处理低量级数据,当数据量过高,Excel只能展现部分数据,不利于后续的数据分析,此时使用Python进行数据分析更加方便,有效。
一、数据清洗
先使用info()函数查看数据信息
data=pd.read_csv('data_wuliu.csv',encoding='gbk')
data.info()
从图中可以看出该物流数据共有1160条数据,每条数据有10列,其中订单号、货品交货状况和数量列存在缺失值,同时销售金额的类型是object类型,应转换其数据类型。具体操作如下:
1. 重复值、缺失值、格式调整
删除重复记录
data.drop_duplicates(keep='first',inplace=True)
删除缺失值
data.dropna(axis=0,how='any',inplace=True)
删除订单列
考虑到订单列对分析数据无关紧要,将订单列删除
data.drop(columns=['订单行'],inplace=True,axis=1)
更新索引
data.reset_index(drop=True,inplace=True)
清洗数据
从图中可以看出,销售金额中含有 “,”,空格,且单位不一致,对此,编写自定义过滤函数,将逗号和空格删除,并统一单位
def data_deal(number):
if number.find('万元') !=-1: # 找到带有万元的
number_new=float(number[:number.find('万元')].replace(',',''))*10000
else:
number_new=float(number.replace('元','').replace(',',''))
return number_new
data['销售金额']=data['销售金额'].map(data_deal)
2. 异常值处理
从上图可以看出,存在销售金额为0的情况,为异常值,将其删除,同时该数据的中位数远小于平均数,即销售金额和数量存在严重右偏现象,属于正常现象,无需处理。删除代码如下:
data=data[data['销售金额']!=0]
二、数据规整
增加一项辅助列:月份
data['销售时间']=pd.to_datetime(data['销售时间'])
data['月份']=data['销售时间'].apply(lambda x:x.month)
三、 数据分析
1. 配送服务是否存在问题
从三个维度展开分析,具体分析如下:
① 月份维度
data['货品交货状况']=data['货品交货状况'].str.strip()
data1=data.groupby(['月份','货品交货状况']).size().unstack()
data1['按时交货率']=data1['按时交货']/(data1['按时交货']+data1['晚交货'])
结论:从按时交货率来看,第四季度低于第三季度,猜测气候原因可能会影响配送
② 销售区域维度
data2=data.groupby(['销售区域','货品交货状况']).size().unstack()
data2['按时交货率']=data2['按时交货']/(data2['按时交货']+data2['晚交货'])
结论:西北地区存在突出的延时交货问题,急需解决
③ 货品维度
data3=data.groupby(['货品','货品交货状况']).size().unstack()
data3['按时交货率']=data3['按时交货']/(data3['按时交货']+data3['晚交货'])
结论:货品4晚交货情况非常严重,其余货品交货情况较好
④ 货品和销售区域结合
data4=data.groupby(['货品','销售区域','货品交货状况']).size().unstack()
data4['按时交货率']=data4['按时交货']/(data4['按时交货']+data4['晚交货'])
结论:货品4送往西北地区的晚交货情况严重,货品2送往马来西亚晚交货情况非常严重
2. 是否存在尚有潜力的销售区域
① 月份维度
data5=data.groupby(['月份','货品'])['数量'].sum().unstack()
data5.plot(kind='line')
plt.show()
结论:货品2在10月份和12月份销量猛增,原因猜测:公司加大营销力度或者开发了新的市场
② 销售区域维度
data6=data.groupby(['销售区域','货品'])['数量'].sum().unstack()
结论:从销售区域看,每种货品销售区域为1-3个,货品1有三个销售区域,货品2有两个销售区域,其余货品均有一个销售区域
③ 月份和销售区域
data7=data.groupby(['月份','销售区域','货品'])['数量'].sum().unstack()
结论:货品2在10、12月份销量猛增,原因主要发生在原有销售区域;货品2在7、8、9、11月份销售数量还有很大提升空间,可以适当加大营销力度;货品2在8月份在两个销售区域的销量均有提升,在马来西亚地区的涨幅更大,可以尝试继续在马来西亚增大营销力度文章来源:https://www.toymoban.com/news/detail-499081.html
3.商品是否存在质量问题
data['货品用户反馈']=data['货品用户反馈'].str.strip()
data8=data.groupby(['货品','销售区域'])['货品用户反馈'].value_counts().unstack()
data8['合格率']=data8['质量合格']/data8.sum(axis=1)
data8['返修率']=data8['返修']/data8.sum(axis=1)
data8['拒货率']=data8['拒货']/data8.sum(axis=1)
结论:货品3、6、5合格率均较高,返修率比较低,说明质量还可以;货品1、2、4合格率较低,返修率较高,质量存在一定问题,需要改善,建议扩大抽检范围,增大质检力度;货品2在马来西亚的拒货率最高,同时在马来西亚的按时交货率也非常低,猜测:马来西亚人对送货的时效性要求较高,如果没有按时到货,往往考虑退货,建议加快运输;虑到货品2主要在华东地区销量大,可以考虑增大在华东的投资,适当减少马来西亚的投入文章来源地址https://www.toymoban.com/news/detail-499081.html
四、总结
- 货品4—>西北,货品2—>马来西亚两条路线存在较大问题,急需提升时效
- 货品2在华东地区还有较大市场空间,适合加大投入,同时货品2在马来西亚配送时效长,用户拒收率高,从成本角度考虑,应该减少投入
- 货品1、2、4质量存在问题,建议扩大抽检范围,增大质检力度
到了这里,关于使用Python对物流行业数据进行数据分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!