美文网首页
OM面试数据处理题目

OM面试数据处理题目

作者: 弦好想断 | 来源:发表于2020-05-17 09:18 被阅读0次

    数据:
    1,sales负责的展柜list;(4242条)

    2,全部参加两项促销活动的展柜信息;(11309条)

    3,公司的组织架构(22条)

    需求:
    1、汇总表-按照Sales/区域两个部分呈现商厦和展柜两个维度的进度促销覆盖进度;
    2、明细表-商厦和展柜两个维度的具体促销活动是否覆盖的明细表;
    要求:数据会每天更新【活动原始数据-每日更新】的数据源,请用excel函数搭建框架,要求保留所有公式,做到每日更新【活动原始数据-每日更新】即能立刻更新数据呈现新的进度展示;

    汇总表

    明细表

    python代码

    path = 'D:\python_data_file\OM面试数据处理题目.xlsx'
    df1 = pd.read_excel(path,sheet_name='展柜list')
    df2 = pd.read_excel(path,sheet_name='活动数据-每日更新')
    df3 = pd.read_excel(path,sheet_name='组织架构')
    df1.columns = ['商厦代码','展柜代码','Sales']
    #四个指标的联合汇总
    df4 = df1.merge(df3,on='Sales',how='outer')
    df4.drop_duplicates(['商厦代码','展柜代码'],inplace=True)
    
    a=[]
    for i in df4.groupby(['区域','Sales'])['商厦代码'].unique():
        a.append(len(list(i)))
    b= df4.groupby(['区域','Sales']).count()['展柜代码'].reset_index()
    b.columns = ['区域','Sales','展柜']
    b['商厦'] = a
    df4_2 = df2.merge(df4,on=['商厦代码','展柜代码'],how='inner')
    df4_2.drop_duplicates(['商厦代码','展柜代码'],inplace=True)
    c=[]
    for i in df4_2.groupby(['区域','Sales'])['商厦代码'].unique():
        c.append(len(list(i)))
    d= df4_2.groupby(['区域','Sales']).count()['展柜代码'].reset_index()
    d.columns = ['区域','Sales','展柜']
    d['商厦'] = c
    #汇总表
    x = pd.DataFrame(index = d.groupby(['区域','Sales']).count().index)
    x['商厦促销活动覆盖率'] = list(d['商厦']/b['商厦'])
    x['展柜促销活动覆盖率'] = list(d['展柜']/b['展柜'])
    #明细表
    df4_2.groupby(['商厦代码','展柜代码'])['补贴类型'].count().apply(lambda x :x if x>=1 else '否').reset_index()
    

    应该有其他简便方法,求大佬指点。
    数据:https://pan.baidu.com/s/1MRWsunTlosZNIKsEQFPTEw 提取码:u39d

    相关文章

      网友评论

          本文标题:OM面试数据处理题目

          本文链接:https://www.haomeiwen.com/subject/vkihohtx.html