請參考
python列表切片讀取csv數據計算導購客單價.py
題目來源?/FGFW/FCNNIC
依山居?19:44?2015/11/22
計算公式為:
導購日客單價=導購日成交金額/日客單數
每個相同的單據編號為1單,也就是去重後得到該導購的日客單數
導購日成交金額=導購完成的日所有單總和,也可以小計中倒數第二列直接提取
要求:計算出CSV表格中每位導購每天的客單價.
總結:這個版本要計算多個日期,邏輯復雜度多了壹層,
忍不住寫很了很多列表解析過濾,代碼行數少,但是可讀性和維護性應該差。
"""
with?open("2014.08.01-2014.09.30零售數據.csv")?as?f:
txt=[r.rstrip("\n").split(",")?for?r?in?f.readlines()]
dg={r[0]?for?r?in?txt?if?(r[0]!='')?and?("普通零售"?in?r[5])}
dg=sorted(dg)
for?d?in?dg:
date={r[1]?for?r?in?txt?if?(d?in?r[0])?and?("-"?in?r[1])}
date=sorted(date)
for?t?in?date:
導購成交金額=sum([float(s[-3])?for?s?in?txt?if?(d?in?s[0]?and?(t?in?s[1])?and?s[-3]!='')])
日單數=len({s[2]?for?s?in?txt?if?(d?in?s[0]?and?(t?in?s[1])?and?s[-3])})
導購客單價=導購成交金額/日單數
print(d,"%s?成交額:%4.2f?客單價:%2.2f?日單數:%2d"?%(t,導購成交金額,導購客單價,日單數))
try:
input("按回車退出")
except?SyntaxError:
pass
"""
輸出:
...
顧意珍?2014-09-13?成交額:539.00?客單價:26.95?日單數:20
顧意珍?2014-09-14?成交額:397.00?客單價:22.06?日單數:18
黎麗群?2014-08-15?成交額:489.00?客單價:19.56?日單數:25
...
"""