"""
python正则提取CSV文件数据计算导购客单价.py
题目来源 https://github.com/FGFW/FCNNIC
依山居 4:36 2015/11/22
看了看python自带的csv库貌似也没能解决啥问题,
干脆就自己用正则来写了代码量出乎意料的少.
在线查本csv表格 http://t.cn/RU3hoB0
下载csv表格 http://t.cn/RU3haTL
计算公式为:
导购日客单价=导购日成交金额/日客单数
每个相同的单据编号为1单,也就是去重后得到该导购的日客单数
导购日成交金额=导购完成的日所有单总和,也可以小计中倒数第二列直接提取
要求:计算出CSV表格中每位导购的客单价.
思路是正则匹配(导购)小计得到导购名字,顺便把该导购成交金额提取了。
然后再集合解析正则匹配该导购所有单并去重,一条语句得到日客单数。
"""
import re
rec=re.compile("\((.+)\)小计.+,.+,(\d+.\d+),.*")
with open("0914零售数据.csv") as f:
cf=f.read()
f.close()
dglist=re.findall(rec,cf) #得到格式如[('顾意珍', '480.00'), ('张彩菊', '505.00'),..]
for d,t in dglist: #迭代dglist,如d得到顾意珍,t得到她的当天销售额480.00
rec=re.compile("%s,\d+-\d+-\d+,(\w+-\d+),"%d) #用导购名字拼成正则串,那么匹配到的都是她的单子
多少单=len({l for l in re.findall(rec,cf)}) #相同的单号只算一个单,正则查找的结果放在集合,
#集合中元素不能重复,相当于去重处理,所以len长度可以得到该导购的单量
客单价=float(t)/多少单 #t还是字符串,需要转成float再计算
print("导购:%s 日成交金额: %s 日客单价:%3.2f 日单量:%s" %(d,t,客单价,多少单))
try:
input("回车退出")
except SystemError:
pass
"""
输出:
>>>
导购:顾意珍 日成交金额: 480.00 日客单价:26.67 日单量:18
导购:张彩菊 日成交金额: 505.00 日客单价:28.06 日单量:18
...
"""
python正则提取CSV文件数据计算导购客单价.py
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 我和相亲对象非的感情进展情况不瘟不火,说情侣感觉差太多了,有点像朋友。说朋友嘛,连个普通朋友的感觉都没有。 ...