2014-04-10 15 views
0

我正在查詢數據庫以查找潛在客戶。潛在客戶有一個「潛在客戶生成日期」和一個可能的「關閉」日期。從多維列表中計算唯一日期

我想要做的是針對Google可視化API,以月/月爲格式[MM/YYYY,潛在客戶,潛在客戶]每月關閉獲得月總數。

我有我的查詢邏輯成立,目前擁有類似AA結果:

[ 
["09/2011","09/2011"], 
["09/2011","10/2011"], 
["10/2011","12/2011"], 
... 
] 

我被困試圖拿出一個有效的方式分析此,並得到的結果是:

[ 
["09/2011", 2, 1], 
["10/2011", 1, 1], 
["12/2011", 0, 1] 
] 

任何幫助,將不勝感激!

+0

我覺得你應該表現出你的模型和您的查詢的邏輯,因爲我不明白爲什麼要在嵌套始於2-了與您的日期元素列表。如果你給自己一個更好的起點,這可能會更容易。 **編輯**:哦,您的輸入列表應該是每個記錄的[lead_opened,lead_closed]? –

+0

正確,輸入列表應該是每個記錄的[lead_opened,lead_closed]。我最終弄平了列表並獲得了唯一的日期,然後創建了另外2個列表,其中一個包含所有生成日期,另一個包含關閉日期。然後,我通過日期循環,並做了leads_assigned_dates.count(日期)等等。必須有更好的方法 – Erik

回答

2

這不是漂亮,但是這應該工作:

from collections import defaultdict 

d1 = defaultdict(int) 
d2 = defaultdict(int) 

data = [["09/2011","09/2011"],["09/2011","10/2011"],["10/2011","12/2011"]] 

for d in data: 
    d1[d[0]] += 1 
    d2[d[1]] += 1 

out = [] 
for key in set(d1.keys()) | set(d2.keys()): 
    out.append([key, d1.get(key, 0), d2.get(key, 0)]) 
+0

你可以通過使用[collections.defaultdict](https://docs.python.org/2)來「美化」 /library/collections.html#collections.defaultdict)在你的'for'循環中;) –

+1

我編輯了我的答案。你的意思是這樣嗎? – lukas1994