#本代码要点:特定列筛选组成新表、新建一列、分组求和;
#主题:计算单门店各员工当月的业绩
#EXCEL工作表:一维表
#拓展:计算多个门店各员工当月的业绩
#@unique装饰器检查是否有重复值
from enum import unique
import pandas as pd
#在路径前加R,原路径不用改;路径在文件右键-属性-安全
file_path=r’C:\Users\HW\Desktop\员工提成明细.xls’
#读取EXCEL文件
df=pd.read_excel(file_path)
#数据选择:筛选条件+多列选择
df1=df[df.类型1==‘非次数卡’][[‘开单日期’,‘员工姓名’,‘单据金额’,‘业绩比例’,‘类型1’,‘类型2’,‘项目名称’]]
#增加新列
df1[‘百分比’]=df1[‘业绩比例’]*0.01
df1[‘员工业绩’]=df1[‘单据金额’]*df1[‘百分比’]
#数据分组:数据透视表,计算员工当月现金业绩
df2=df1[‘员工业绩’].groupby(df1[‘员工姓名’]).sum()
#数据检查:数据导出前先检查一下字段
df2.info()
print(df2)
#数据检查:查看特定列包含的非重复值内容
a=df2[‘类型2’].unique()
print(a)
#EXCEL表导出
df2.to_excel(‘员工个人业绩.xls’)
拓展:计算多个门店的员工业绩
重点:需要对多个表进行纵向合并
操作:
#将各门店员工业绩表(一维表)放进新建的文件夹
import os
inputdir=r’C:\Users\HW\Desktop\新建文件夹’
df_empty=pd.DataFrame(columns=[‘列名1’,‘列名2’,…])
for parents,dirnames,filenames in os.walk(inputdir):
for filename in filenames:
df=pd.read_excel(os.path.join(parents,filename))
df_empty=df_empty.append(df,ignore_index=True)