泰迪杯数据分析比赛2018年B题解答-任务3补充3.2
任务3-文章目录
- 泰迪杯数据分析比赛2018年B题解答-任务3补充3.2
-
- 3.1全部代码:
- 任务3.2实现代码:
- 结尾
泰迪杯数据地址: https://www.tipdm.org/bdrace/jljingsai/20181008/1488.html#sHref.
前言:由于许多码友咨询3.2的任务代码,因此为了实现码友们的期望,特此补充3.2的实现代码。
任务 3.2 在任务 3.1 的基础上进行标签拓展,依据标签生成完整的售货机画像,结果保存在 CSV 文件中,文件名分别为“task3-2A.csv”、task3- 2B.csv”、…、“task3-2E.csv”。依据此画像进行总结描述,给出营销意见。
因为任务3.2是基于任务3.1的代码,因此先展现出3.1的代码:
3.1全部代码:
import pandas as pd
from sklearn.cluster import KMeans
from sklearn import metrics
from sklearn import preprocessing
def task9(data):
data1=pd.read_csv(r'D:\大数据学习\数据分析与挖掘\B题\\'+data,encoding='gbk')
dalei=data1['商品'].unique().tolist()#提取出商品总列表,方便之后进行分类
datasum=[]
datasem=[]
for i in dalei:
data_x=data1[data1['商品']==i]['实际金额'].sum()
data_t=data1[data1['商品']==i]['商品'].size
datasum.append(data_x)#插入列表中
datasem.append(data_t)
task1_2 = pd.DataFrame({ '商品':dalei,'总实际金额':datasum,'销售量':datasem})#对列表进行整理,制作成表单
X = preprocessing.minmax_scale(task1_2['销售量'])
X = pd.DataFrame(X, columns=['销售量'])
kmeans=KMeans(n_clusters=3)
kmeans.fit(X)
#将标签插入players表格中
task1_2['cluster']=kmeans.labels_
task1=list(task1_2['cluster'])
for i in range(len(task1)):
if(task1[i] == 2):
task1[i] = '热销'
elif(task1[i]==1):
task1[i]='正常'
elif(task1[i]==0):
task1[i]='滞销'
task1_2['cluster']=task1
task1=task1_2['商品']
task2=task1_2['cluster']
task=pd.DataFrame({ '商品':task1,'标签':task2,'销售金额':datasum})
return task
#task.to_csv(r'D:\大数据学习\数据分析与挖掘\B题\result\\'+data_1,encoding='gbk')
a=task9('task1-A.csv')
b=task9('task1-B.csv')
c=task9('task1-C.csv')
d=task9('task1-D.csv')
e=task9('task1-E.csv')
本人任务3.2的处理方式与3.1的是相似的,如想看整体思想可以翻看任务3.1的博客,在此就不多做解释了。
任务3.2实现代码:
import pandas as pd
from sklearn.cluster import KMeans
from sklearn import metrics
from sklearn import preprocessing
def task10(date,date1):
X=preprocessing.minmax_scale(date['销售金额'])
X=pd.DataFrame(X,columns=['销售金额'])
kmeans=KMeans(n_clusters=3)
kmeans.fit(X)
date['cluster']=kmeans.labels_
task1=list(date['cluster'])
for i in range(len(task1)):
if(task1[i] == 2):
task1[i] = '高金额'
elif(task1[i]==1):
task1[i]='普通'
elif(task1[i]==0):
task1[i]='低金额'
date['cluster']=task1
b=date['标签']+date['cluster']
task=pd.DataFrame({ '商品':date['商品'],'销售标签':date['标签'],
'总金额标签':date['cluster'],'商品总体画像':b})
task.to_csv(r'D:\大数据学习\数据分析与挖掘\B题\result\\'+date_1,encoding='gbk')
return task
task10(a,'task3-2A')
task10(b,'task3-2B')
task10(c,'task3-2C')
task10(d,'task3-2D')
task10(e,'task3-2E')
售货机A结果:
由此可以得出各商品的总销售金额与销售量形成的画像啦。
另外因本人技术问题,任务4得出的预算结果不如预期,因此任务4暂时不展现出来,等本人技术加深后,再更新任务4的博客。
结尾
任务3到这里就完成啦
还请各位大神指点我这小白的代码。