Board logo

标题: [原创代码] python列表切片读取csv数据计算导购客单价.py [打印本页]

作者: 依山居    时间: 2015-11-22 20:12     标题: python列表切片读取csv数据计算导购客单价.py

  1. """
  2. python列表切片读取csv数据计算导购客单价.py
  3. 题目来源 https://github.com/FGFW/FCNNIC
  4. 依山居 19:44 2015/11/22
  5. 计算公式为:
  6. 导购日客单价=导购日成交金额/日客单数
  7. 每个相同的单据编号为1单,也就是去重后得到该导购的日客单数
  8. 导购日成交金额=导购完成的日所有单总和,也可以小计中倒数第二列直接提取
  9. 要求:计算出CSV表格中每位导购每天的客单价.
  10. 总结:这个版本要计算多个日期,逻辑复杂度多了一层,
  11. 忍不住写很了很多列表解析过滤,代码行数少,但是可读性和维护性应该差。
  12. """
  13. with open("2014.08.01-2014.09.30零售数据.csv") as f:
  14.     txt=[r.rstrip("\n").split(",") for r in f.readlines()]
  15. dg={r[0] for r in txt if (r[0]!='') and ("普通零售" in r[5])}
  16. dg=sorted(dg)
  17. for d in dg:
  18.     date={r[1] for r in txt if (d in r[0]) and ("-" in r[1])}
  19.     date=sorted(date)
  20.     for t in date:
  21.         导购成交金额=sum([float(s[-3]) for s in txt if (d in s[0] and (t in s[1]) and s[-3]!='')])
  22.         日单数=len({s[2] for s in txt if (d in s[0] and (t in s[1]) and s[-3])})
  23.         导购客单价=导购成交金额/日单数
  24.         print(d,"%s 成交额:%4.2f 客单价:%2.2f 日单数:%2d" %(t,导购成交金额,导购客单价,日单数))
  25. try:
  26.     input("按回车退出")
  27. except SyntaxError:
  28.     pass
  29. """
  30. 输出:
  31. ...
  32. 顾意珍 2014-09-13 成交额:539.00 客单价:26.95 日单数:20
  33. 顾意珍 2014-09-14 成交额:397.00 客单价:22.06 日单数:18
  34. 黎丽群 2014-08-15 成交额:489.00 客单价:19.56 日单数:25
  35. ...
  36. """
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2