Python:小试牛刀,用Pandas做日报

前言:之前一直用PQ和VBA来做日报,最近学了pandas,想试试看用pandas来做需要多久。
花了一整个白天才写完了(用pq的话大概只要1-2个小时,又一次证明了pq是多么伟大的发明啊!),本来以为要很多代码行,但实际操作下来还好,除去注释实际代码数不超过150行,当然还有很多地方还需要优化,总代码量应该能保持在300行以内(想到我之前的自动下载数据代码从80行一直优化到280多行。。。)。
虽然相对pq写起来比较慢(其实如果熟练了的话挺快的,主要是我第一次用pandas写,很多代码功能不熟悉,一直在百度,熟悉了以后我觉得码代码的速度不比pq慢),但是感觉运行速度要比pq快很多(毕竟底层是C语言操作~)
后面我会尝试着把更多的有用代码放入其中,一边学习一边优化

数据源:
在这里插入图片描述

报表结果:
在这里插入图片描述

具体代码:

# coding=gbk
import pandas as pd
import datetime
import re


def get_station_and_manager(store_name):
    '''根据门店名称获得对应的分局和渠道经理(仅限中小)'''
    for i in range(len(address_list)):
        if address_list[i]['地址'] in store_name:
            station = address_list[i]['所属分局']
            manager = address_list[i]['中小渠道经理']
            return station, manager
        else:
            continue
    station, manager = '未定', '未定'
    return station, manager

def check_num(arr):
    '''判断字符串内是否有数字'''
    pattern = re.compile('[0-9]+')
    for v in arr:
        match = pattern.findall(v)
        if match:
            return 1
        else:
            continue
    return 0

def check_yy(name):
    '''判断字符串里是否有营业、专营字样'''
    if '营业' in name: return 1
    elif '专营' in name: return 1
    else: return 0

def get_store_information(store_name, channel):
    '''获得门店的具体信息,包括门店标准名称、所属代理商、所属分局和所属渠道经理(限中小)'''
    num_check = check_num(store_name)
    yy_check = check_yy(store_name)
    if num_check == 1 and channel == '中小渠道':
        store_format_name = store_name
        agent = store_name[:2]
        station, manager = get_station_and_manager(store_format_name)
    elif num_check == 1 and channel == '开放渠道':
        store_format_name, agent, station, manager = '开放渠道其他', '其他', '其他', '其他'
    elif num_check == 1 and channel == '专营渠道':
        store_format_name, agent, station, manager = '专营渠道其他', '其他', '其他', '其他'
    elif num_check == 0 and channel == '中小渠道':
        store_format_name, agent, station, manager = '中小渠道其他', '其他', '其他', '其他'
    elif num_check == 0 and channel == '专营渠道'and yy_check:
        store_format_name = store_name
        find_sh = store_name.find('上海')
        agent = store_name[:find_sh]
        station = get_station_and_manager(store_format_name)[0]
        manager = '未定'
    elif num_check == 0 and channel == '开放渠道' and yy_check:
        store_format_name, agent, station, manager = '开放渠道其他', '其他', '其他', '其他'
    elif num_check == 0 and channel == '专营渠道' and not yy_check:
        store_format_name, agent, station, manager = '专营渠道其他', '其他', '其他', '其他'
    elif num_check == 0 and channel == '开放渠道' and not yy_check:
        store_format_name = store_name
        find_sh = store_name.find('上海')
        agent = store_name[:find_sh]
        station = get_station_and_manager(store_format_name)[0]
        manager = '其他'
    else:
        store_format_name = store_name
        find_sh = store_name.find('上海')
        agent = store_name[:find_sh]
        station, manager = '其他', '其他'
    store_format_name = store_format_name.replace('(终端)', '').replace('_失效', '')
    return store_format_name, agent, station, manager

def yesterday_format():
    '''获得昨天的标准日期:2019-4-27'''
    today = datetime.date.today()
    oneday = datetime.timedelta(days = 1)
    yesterday = today - oneday
    date_yes = yesterday.strftime("%Y" + '-' + "%m" + '-' + "%d")
    return date_yes

pd.set_option('display.max_columns', None) #显示所有列

# 1、加载清单
# cdma_list = pd.read_table(r"C:\Users\Administrator\Desktop\报表\数据\cdma.xls", engine='python')
# kd_list = pd.read_table(r"C:\Users\Administrator\Desktop\报表\数据\kd.xls", engine='python')
# bxl_list = pd.read_table(r"C:\Users\Administrator\Desktop\报表\数据\单转融.xls", engine='python')
# thirty_list = pd.read_table(r"C:\Users\Administrator\Desktop\报表\数据\199+30.xls", engine='python')
# main_sale_list = pd.read_table(r"C:\Users\Administrator\Desktop\报表\数据\主要销售品.xls", engine='python')
# dk_list = pd.read_csv(r"C:\Users\Administrator\Desktop\报表\数据\8月单宽设备号.csv", engine='python')
# store_match_table = pd.read_excel(r"C:\Users\Administrator\Desktop\报表\数据\数据说明与匹配公式.xlsx", '部门匹配表')
# package_match_table = pd.read_excel(r"C:\Users\Administrator\Desktop\报表\数据\数据说明与匹配公式.xlsx", '套餐匹配表')
# channel_match_table = pd.read_excel(r"C:\Users\Administrator\Desktop\报表\数据\数据说明与匹配公式.xlsx", '渠道大小类对应表')
# no_main_mix_table = pd.read_excel(r"C:\Users\Administrator\Desktop\报表\数据\数据说明与匹配公式.xlsx", '非主流融合套餐')
# ribao_table = pd.read_excel(r"C:\Users\Administrator\Desktop\报表\日报\日报模板(会用宏的可以用用).xlsm", '门店维度', skiprows=[0, 1, 2], skipfooter=1, header=None)
address_match_table = pd.read_excel(r"C:\Users\Administrator\Desktop\报表\数据\数据说明与匹配公式.xlsx", '地址分局匹配表')[['地址', '所属分局', '中小渠道经理']]
address_list = address_match_table.to_dict(orient='records') #把地址分局匹配表转化成[{'地址':'祖冲之路', '所属分局': '张江', '中小渠道经理', '未定'}, {...}, {...}, .....]这种格式

# #2、CDMA
# '''处理步骤:
# 1、先做清单筛选,“销售区局”选择“浦东电信局”,“渠道管理细分”选择“开放渠道”、“中小渠道”和“专营渠道”;
# 2、再对“渠道管理细分”进行清理,“发展渠道小类”是“终端零售店(开放)”的,“渠道管理细分”从“开放渠道”转换成“中小渠道”;
# 3、根据“发展部门名称”和“渠道管理细分”,与“部门匹配表”里的“发展部门名称”和“渠道管理细分”进行匹配,获得新列“所属部门”;
# 4、根据“套餐名称”,与“套餐匹配表”里的“套餐名称(移动)”进行匹配,获得新列“套餐归类(日报)”(为后面的不限量副卡叠加做准备);
# 4、做数据透视表,获得4张新表,主要字段包括:昨日/累计移动发展量(“所属部门”、“用户标识”(计数)),“套餐名称”选择全量或包含“新移动”的套餐;'''
# #2.1 清单处理
# cdma_list = cdma_list[(cdma_list['销售区局'] == '浦东电信局') & (cdma_list['渠道管理细分'].isin(['开放渠道', '中小渠道', '专营渠道']))]
# cdma_list.loc[cdma_list['发展渠道小类'] == '终端零售店(开放)', '渠道管理细分'] = '中小渠道'
# cdma_list = pd.merge(cdma_list[['统计日期', '促销员工工号', '发展部门名称', '套餐名称', '客户标识', '用户标识', '渠道管理细分']], store_match_table[['发展部门名称', '渠道管理细分', '所属部门']], how='left', left_on=['发展部门名称', '渠道管理细分'], right_on=['发展部门名称', '渠道管理细分'])
# cdma_list = pd.merge(cdma_list, package_match_table[['套餐名称(移动)', '套餐归类(日报)']], how='left', left_on='套餐名称', right_on='套餐名称(移动)')
# cdma_list.loc[:, '统计日期'] = pd.to_datetime(cdma_list['统计日期'], format="%Y" + '-' + "%m" + '-' + "%d") #把统计日期进行标准化(2019-04-25)
# #2.2 获取四份清单和数据透视表
# cdma_pivot = cdma_list.pivot_table(index='所属部门', values='用户标识', aggfunc='count')
# cdma_pivot.rename(columns={'用户标识': '累计移动发展量'}, inplace=True)
# today_cdma_list = cdma_list[cdma_list['统计日期'] == yesterday_format()]
# today_cdma_pivot = today_cdma_list.pivot_table(index='所属部门', values='用户标识', aggfunc='count')
# today_cdma_pivot.rename(columns={'用户标识': '日移动发展量'}, inplace=True)
# newcdma_list = cdma_list[cdma_list['套餐名称'].str.contains('新移动')]
# newcdma_pivot = newcdma_list.pivot_table(index='所属部门', values='用户标识', aggfunc='count')
# newcdma_pivot.rename(columns={'用户标识': '累计新移动发展量'}, inplace=True)
# today_newcdma_list = newcdma_list[newcdma_list['统计日期'] == yesterday_format()]
# today_newcdma_pivot = today_newcdma_list.pivot_table(index='所属部门', values='用户标识', aggfunc='count')
# today_newcdma_pivot.rename(columns={'用户标识': '日新移动发展量'}, inplace=True)
#
# #3、宽带
# '''处理步骤:
# 1、先做清单筛选,“促销区局”选择“浦东电信局”,“渠道管理细分”选择“开放渠道”、“中小渠道”和“专营渠道”;
# 2、再对“渠道管理细分”进行清理,“发展渠道小类”是“终端零售店(开放)”的,“渠道管理细分”从“开放渠道”转换成“中小渠道”;
# 3、根据“促销部门”和“渠道管理细分”,与“部门匹配表”里的“发展部门名称”和“渠道管理细分”进行匹配,获得新列“所属部门”;
# 4、根据“营销活动名称”,与“套餐匹配表”里的“套餐名称(宽带)”进行匹配,获得新列'宽带销售额(百日)','是否融合套餐', '是否非主流融合套餐', '是否融合129及以上套餐';
# 5、根据“营销活动名称”,与“非主流融合套餐”里的“套餐名称”进行匹配,获得新列“是否非主流融合套餐”;
# 6、做数据透视表,获得2张新表,主要字段包括:昨日/累计宽带发展量(“所属部门”、“用户标识”(计数)、“融合129及以上发展量”等)'''
# #3.1 清单处理
# kd_list = kd_list[(kd_list['促销区局'] == '浦东电信局') & (kd_list['渠道管理细分'].isin(['开放渠道', '中小渠道', '专营渠道']))]
# kd_list.loc[kd_list['发展渠道小类'] == '终端零售店(开放)', '渠道管理细分'] = '中小渠道'
# kd_list = pd.merge(kd_list[['完工日期', '客户标识', '营销活动名称', '97用户标识', '促销员工工号', '促销部门', '渠道管理细分']], store_match_table[['发展部门名称', '渠道管理细分', '所属部门']], how='left', left_on=['促销部门', '渠道管理细分'], right_on=['发展部门名称', '渠道管理细分'])
# kd_list = pd.merge(kd_list, package_match_table[['套餐名称(宽带)', '是否融合套餐', '是否融合129及以上套餐', '宽带销售额(百日)']], how='left', left_on='营销活动名称', right_on='套餐名称(宽带)')
# kd_list = pd.merge(kd_list, no_main_mix_table[['套餐名称', '是否非主流融合套餐']], how='left', left_on='营销活动名称', right_on='套餐名称')
# kd_list.loc[:, '完工日期'] = pd.to_datetime(kd_list['完工日期'], format="%Y" + '-' + "%m" + '-' + "%d")
# kd_list = kd_list[['完工日期', '客户标识', '营销活动名称', '套餐名称(宽带)', '97用户标识', '促销员工工号', '促销部门', '渠道管理细分', '所属部门', '是否融合套餐', '是否融合129及以上套餐', '宽带销售额(百日)', '是否非主流融合套餐']]
# kd_list = kd_list.fillna({'是否融合套餐': 0, '是否融合129及以上套餐': 0, '宽带销售额(百日)': 0, '是否非主流融合套餐': 0})
# #3.2 获取2份清单和数据透视表
# kd_pivot = kd_list.pivot_table(index=['所属部门'], values=['97用户标识', '宽带销售额(百日)', '是否融合套餐', '是否非主流融合套餐', '是否融合129及以上套餐'], aggfunc={'97用户标识': len, '宽带销售额(百日)': sum, '是否融合套餐': sum, '是否非主流融合套餐': sum, '是否融合129及以上套餐': sum})
# kd_pivot.rename(columns={'97用户标识': '累计宽带发展量', '宽带销售额(百日)': '累计宽带销售额', '是否融合套餐': '累计融合发展量', '是否非主流融合套餐': '累计非主流融合发展量', '是否融合129及以上套餐': '累计融合129及以上发展量'}, inplace=True)
# today_kd_list = kd_list[kd_list['完工日期'] == yesterday_format()]
# today_kd_pivot = today_kd_list.pivot_table(index=['所属部门'], values=['97用户标识', '宽带销售额(百日)', '是否融合套餐', '是否非主流融合套餐', '是否融合129及以上套餐'], aggfunc={'97用户标识': len, '宽带销售额(百日)': sum, '是否融合套餐': sum, '是否非主流融合套餐': sum, '是否融合129及以上套餐': sum})
# today_kd_pivot.rename(columns={'97用户标识': '日宽带发展量', '宽带销售额(百日)': '日宽带销售额', '是否融合套餐': '日融合发展量', '是否非主流融合套餐': '日非主流融合发展量', '是否融合129及以上套餐': '日融合129及以上发展量'}, inplace=True)
#
# # 4、单转融
# '''处理步骤:
# 1、根据“(初始)发展渠道小类描述”,与“渠道大小类对应表”中的“渠道小类”进行匹配,获得新列“渠道管理细分”;
# 2、将bxl(也就是单转融)和“8月单宽设备号”进行匹配,剔除N/A的行;
# 3、根据“(初始)发展部门名称”和“渠道管理细分”,与“部门匹配表”里的“发展部门名称”和“渠道管理细分”进行匹配,获得新列“所属部门”;
# 4、做数据透视表,获得2张新表,主要字段包括:昨日/累计单升融发展量(“所属部门”、“主移动用户标识”(计数))'''
# # #4.1 清单处理
# dk_list = dk_list.drop_duplicates(['用户标志'])
# bxl_list = pd.merge(bxl_list[['(初始)发展部门名称', '(初始)发展渠道小类描述', '(初始)完工日期', '主移动用户标识', '用户标识', '促销员工工号', '客户编码']], channel_match_table[['渠道小类', '渠道管理细分']], how='left', left_on='(初始)发展渠道小类描述', right_on='渠道小类')
# bxl_list = pd.merge(bxl_list, dk_list, how='left', left_on='用户标识', right_on='用户标志')
# bxl_list = pd.merge(bxl_list[['(初始)发展部门名称', '(初始)发展渠道小类描述', '(初始)完工日期', '主移动用户标识', '用户标识', '促销员工工号', '客户编码', '渠道管理细分', '统计月营销活动名称']], store_match_table[['发展部门名称', '渠道管理细分', '所属部门']], how='left', left_on=['(初始)发展部门名称', '渠道管理细分'], right_on=['发展部门名称', '渠道管理细分'])
# bxl_list.dropna(subset=['所属部门'], inplace=True) #为后面的不限量副卡叠加做准备
# dzr_list = bxl_list.dropna(subset=['统计月营销活动名称'])
# dzr_list.loc[:, '(初始)完工日期'] = pd.to_datetime(dzr_list['(初始)完工日期'], format="%Y" + '-' + "%m" + '-' + "%d")
# #4.2 获取2份清单和数据透视表
# dzr_pivot = dzr_list.pivot_table(index=['所属部门'], values=['主移动用户标识'], aggfunc='count')
# dzr_pivot.rename(columns={'主移动用户标识': '累计单升融'}, inplace=True)
# today_dzr_list = dzr_list[dzr_list['(初始)完工日期'] == yesterday_format()]
# today_dzr_pivot = today_dzr_list.pivot_table(index=['所属部门'], values=['主移动用户标识'], aggfunc='count')
# today_dzr_pivot.rename(columns={'主移动用户标识': '日单升融'}, inplace=True)
#
# #5、199+30
# '''处理步骤:
# 1、根据“(初始)发展渠道小类描述”,与“渠道大小类对应表”中的“渠道小类”进行匹配,获得新列“渠道管理细分”;
# 2、根据“(初始)发展部门名称”和“渠道管理细分”,与“部门匹配表”里的“发展部门名称”和“渠道管理细分”进行匹配,获得新列“所属部门”;
# 3、做清单筛选,“(初始)发展区局”选择“浦东”,“渠道管理细分”选择“开放渠道”、“中小渠道”和“专营渠道”;
# 4、做数据透视表,获得2张新表,主要字段包括:昨日/累计199+30发展量(“所属部门”、“主用户标识”(计数))'''
# #5.1 清单处理
# thirty_list = pd.merge(thirty_list, channel_match_table[['渠道小类', '渠道管理细分']], how='left', left_on='(初始)发展渠道小类描述', right_on='渠道小类')
# thirty_list = pd.merge(thirty_list, store_match_table[['发展部门名称', '渠道管理细分', '所属部门']], how='left', left_on=['(初始)发展部门名称', '渠道管理细分'], right_on=['发展部门名称', '渠道管理细分'])
# thirty_list = thirty_list[(thirty_list['(初始)发展区局'] == '浦东') & (thirty_list['渠道管理细分'].isin(['开放渠道', '中小渠道', '专营渠道']))]
# thirty_list.loc[:, '安装日期'] = pd.to_datetime(thirty_list['安装日期'], format="%Y" + '-' + "%m" + '-' + "%d")
# #5.2 获取2份清单和数据透视表
# thirty_pivot = thirty_list.pivot_table(index=['所属部门'], values=['主用户标识'], aggfunc='count')
# thirty_pivot.rename(columns={'主用户标识': '累计199+30'}, inplace=True)
# today_thirty_list = thirty_list[thirty_list['安装日期'] == yesterday_format()]
# today_thirty_pivot = today_thirty_list.pivot_table(index=['所属部门'], values=['主用户标识'], aggfunc='count')
# today_thirty_pivot.rename(columns={'主用户标识': '日199+30'}, inplace=True)
#
# #6、主要销售品(包括精品智能组网、宽带提速包、50G包)
# '''处理步骤:
# 1、根据“(初始)发展渠道小类描述”,与“渠道大小类对应表”中的“渠道小类”进行匹配,获得新列“渠道管理细分”;
# 2、根据“(初始)发展部门名称”和“渠道管理细分”,与“部门匹配表”里的“发展部门名称”和“渠道管理细分”进行匹配,获得新列“所属部门”;
# 3、做清单筛选,“(初始)发展区局”选择“浦东”,“渠道管理细分”选择“开放渠道”、“中小渠道”和“专营渠道”;
# 4、根据“销售品名称”做清单拆分,包含“201902-精品智能组网”的是“精品智能组网”,包含“专享宽带提速包”的是“宽带提速包”,“201904-十全十美套餐0元10G全国流量月包(5个月)”是“50G包”;
# 5、做数据透视表,获得6张新表,主要字段包括:昨日/累计精品智能组网/宽带提速包/50G包发展量(“所属部门”、“主用户标识”(计数))'''
# #6.1 清单处理
# main_sale_list = pd.merge(main_sale_list, channel_match_table[['渠道小类', '渠道管理细分']], how='left', left_on='(初始)发展渠道小类描述', right_on='渠道小类')
# main_sale_list = pd.merge(main_sale_list, store_match_table[['发展部门名称', '渠道管理细分', '所属部门']], how='left', left_on=['(初始)发展部门名称', '渠道管理细分'], right_on=['发展部门名称', '渠道管理细分'])
# main_sale_list = main_sale_list[(main_sale_list['(初始)发展区局'] == '浦东') & (main_sale_list['渠道管理细分'].isin(['开放渠道', '中小渠道', '专营渠道']))]
# main_sale_list.loc[:, '安装日期'] = pd.to_datetime(main_sale_list['安装日期'], format="%Y" + '-' + "%m" + '-' + "%d")
# jpznzw_list = main_sale_list[main_sale_list['销售品名称'].str.contains('201902-精品智能组网')]
# kdtsb_list = main_sale_list[main_sale_list['销售品名称'].str.contains('专享宽带提速包')]
# fifty_list = main_sale_list[main_sale_list['销售品名称'] == '201904-十全十美套餐0元10G全国流量月包(5个月)']
# #6.2 获取6份清单和数据透视表
# jpznzw_pivot = jpznzw_list.pivot_table(index=['所属部门'], values=['主用户标识'], aggfunc='count')
# jpznzw_pivot.rename(columns={'主用户标识': '累计精品智能组网'}, inplace=True)
# today_jpznzw_list = jpznzw_list[jpznzw_list['安装日期'] == yesterday_format()]
# today_jpznzw_pivot = today_jpznzw_list.pivot_table(index=['所属部门'], values=['主用户标识'], aggfunc='count')
# today_jpznzw_pivot.rename(columns={'主用户标识': '日精品智能组网'}, inplace=True)
# kdtsb_pivot = kdtsb_list.pivot_table(index=['所属部门'], values=['主用户标识'], aggfunc='count')
# kdtsb_pivot.rename(columns={'主用户标识': '累计宽带提速包'}, inplace=True)
# today_kdtsb_list = kdtsb_list[kdtsb_list['安装日期'] == yesterday_format()]
# today_kdtsb_pivot = today_kdtsb_list.pivot_table(index=['所属部门'], values=['主用户标识'], aggfunc='count')
# today_kdtsb_pivot.rename(columns={'主用户标识': '日宽带提速包'}, inplace=True)
# fifty_pivot = fifty_list.pivot_table(index=['所属部门'], values=['主用户标识'], aggfunc='count')
# fifty_pivot.rename(columns={'主用户标识': '累计50G包'}, inplace=True)
# today_fifty_list = fifty_list[fifty_list['安装日期'] == yesterday_format()]
# today_fifty_pivot = today_fifty_list.pivot_table(index=['所属部门'], values=['主用户标识'], aggfunc='count')
# today_fifty_pivot.rename(columns={'主用户标识': '日50G包'}, inplace=True)
#
# #7、不限量副卡叠加
# '''处理步骤:
# 1、通过“CDMA”清单,获得分子“副卡发展量”;
# 2、通过“不限量”清单,获得分母“不限量发展量”;
# 3、两者之间根据“客户编码”来联系'''
# #7.1 清单处理
# cdma_fk_list = cdma_list[cdma_list['套餐归类(日报)'] == '副卡']
# cdma_fk_pivot = cdma_fk_list.pivot_table(index=['客户标识'], values=['用户标识'], aggfunc='count')
# cdma_fk_pivot.rename(columns={'用户标识': '副卡发展量'}, inplace=True)
# new_bxl_list = bxl_list.drop_duplicates(['用户标识'])
# new_bxl_list = pd.merge(new_bxl_list, cdma_fk_pivot, how='left', left_on='客户编码', right_on='客户标识')
# new_bxl_list = new_bxl_list.fillna({'副卡发展量': 0})
# #7.2 数据透视表
# new_bxl_pivot = new_bxl_list.pivot_table(index=['所属部门'], values=['用户标识', '副卡发展量'], aggfunc={'用户标识': len, '副卡发展量': sum})
# new_bxl_pivot.rename(columns={'用户标识': '不限量主卡发展量'}, inplace=True)
#
# #8、数据合并
# '''把之前的几份数据透视表,根据标准门店进行合并'''
# store_list = ribao_table[[4, 6]]
# store_list.rename(columns={4: '所属部门', 6: '分局'}, inplace=True)
# store_list = pd.merge(store_list, cdma_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, today_cdma_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, newcdma_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, today_newcdma_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, kd_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, today_kd_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, dzr_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, today_dzr_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, thirty_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, today_thirty_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, jpznzw_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, today_jpznzw_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, kdtsb_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, today_kdtsb_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, fifty_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, today_fifty_pivot, how='left', on='所属部门')
# store_list = pd.merge(store_list, new_bxl_pivot, how='left', on='所属部门')
# store_list = store_list.fillna(0) #把缺失值改为0
# store_list = store_list[['所属部门', '日宽带发展量', '日融合129及以上发展量', '累计宽带发展量', '累计融合发展量', '累计非主流融合发展量', '累计融合129及以上发展量', '日宽带销售额', '累计宽带销售额', '日移动发展量', '累计移动发展量', '不限量主卡发展量', '副卡发展量', '日199+30', '累计199+30', '日新移动发展量', '累计新移动发展量', '日精品智能组网', '累计精品智能组网', '日50G包', '累计50G包', '日宽带提速包', '累计宽带提速包']]
#
# 9、获得新的门店、移动套餐和宽带套餐
# lack_store = cdma_list[['发展部门名称', '渠道管理细分']][cdma_list['所属部门'].isnull().values==True].drop_duplicates(subset=None) #获得新的门店
#
# lack_ydtc = cdma_list['套餐名称'][cdma_list['套餐归类(日报)'].isnull().values==True].drop_duplicates() #获得新的移动套餐
# lack_kdtc = kd_list['营销活动名称'][kd_list['套餐名称(宽带)'].isnull().values==True].drop_duplicates() #获得新的宽带套餐
#
# # 10、数据导出
# # 如果要保存为csv文件:
# store_list.to_csv(r"C:\Users\Administrator\Desktop\门店销量.csv", encoding='gbk', index=False)
# # 如果有多个表格,需要保存在同一个xlsx文件:
# writer = pd.ExcelWriter(r"C:\Users\Administrator\Desktop\门店销量.xlsx")
# store_list.to_excel(excel_writer=writer, sheet_name='门店销量', encoding='gbk', index=False)
# lack_store.to_excel(excel_writer=writer, sheet_name='缺失门店', encoding='gbk', index=False)
# lack_ydtc.to_excel(excel_writer=writer, sheet_name='缺失移动套餐', encoding='gbk', index=False)
# lack_kdtc.to_excel(excel_writer=writer, sheet_name='缺失宽带套餐', encoding='gbk', index=False)
# writer.save()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值