2016-09-14 88 views
-2

我有形式的數據:驗證python腳本的

submission #,scores 
882,"Overall evaluation: 1 
Invite to interview: 1 
Strength or novelty of the idea (1): 4 
Strength or novelty of the idea (2): 4 
Strength or novelty of the idea (3): 3 
Use or provision of open data (1): 3 
Use or provision of open data (2): 3 
""Open by default"" (1): 4 
""Open by default"" (2): 4 
Value proposition and potential scale (1): 2 
Value proposition and potential scale (2): 1 
Market opportunity and timing (1): 3 
Market opportunity and timing (2): 1 
Triple bottom line impact (1): 2 
Triple bottom line impact (2): 2 
Triple bottom line impact (3): 4 
Knowledge and skills of the team (1): 1 
Knowledge and skills of the team (2): 2 
Capacity to realise the idea (1): 1 
Capacity to realise the idea (2): 3 
Capacity to realise the idea (3): 1 
Appropriateness of the budget to realise the idea: 3" 
882,"Overall evaluation: 2 
Invite to interview: 3 
Strength or novelty of the idea (1): 4 
Strength or novelty of the idea (2): 1 
Strength or novelty of the idea (3): 4 
Use or provision of open data (1): 4 
Use or provision of open data (2): 3 
""Open by default"" (1): 3 
""Open by default"" (2): 4 
Value proposition and potential scale (1): 4 
Value proposition and potential scale (2): 4 
Market opportunity and timing (1): 4 
Market opportunity and timing (2): 4 
Triple bottom line impact (1): 4 
Triple bottom line impact (2): 1 
Triple bottom line impact (3): 3 
Knowledge and skills of the team (1): 3 
Knowledge and skills of the team (2): 2 
Capacity to realise the idea (1): 2 
Capacity to realise the idea (2): 3 
Capacity to realise the idea (3): 3 
Appropriateness of the budget to realise the idea: 3" 
883,"Overall evaluation: 1 
Invite to interview: 1 
Strength or novelty of the idea (1): 4 
Strength or novelty of the idea (2): 3 
Strength or novelty of the idea (3): 4 
Use or provision of open data (1): 2 
Use or provision of open data (2): 3 
""Open by default"" (1): 3 
""Open by default"" (2): 3 
Value proposition and potential scale (1): 2 
Value proposition and potential scale (2): 1 
Market opportunity and timing (1): 3 
Market opportunity and timing (2): 1 
Triple bottom line impact (1): 1 
Triple bottom line impact (2): 4 
Triple bottom line impact (3): 2 
Knowledge and skills of the team (1): 3 
Knowledge and skills of the team (2): 3 
Capacity to realise the idea (1): 1 
Capacity to realise the idea (2): 3 
Capacity to realise the idea (3): 4 
Appropriateness of the budget to realise the idea: 3" 
883,"Overall evaluation: 1 
Invite to interview: 1 
Strength or novelty of the idea (1): 2 
Strength or novelty of the idea (2): 2 
Strength or novelty of the idea (3): 1 
Use or provision of open data (1): 2 
Use or provision of open data (2): 1 
""Open by default"" (1): 3 
""Open by default"" (2): 2 
Value proposition and potential scale (1): 2 
Value proposition and potential scale (2): 2 
Market opportunity and timing (1): 2 
Market opportunity and timing (2): 2 
Triple bottom line impact (1): 1 
Triple bottom line impact (2): 2 
Triple bottom line impact (3): 2 
Knowledge and skills of the team (1): 4 
Knowledge and skills of the team (2): 2 
Capacity to realise the idea (1): 2 
Capacity to realise the idea (2): 2 
Capacity to realise the idea (3): 3 
Appropriateness of the budget to realise the idea: 3" 
885,"Overall evaluation: 2 
Invite to interview: 1 
Strength or novelty of the idea (1): 2 
Strength or novelty of the idea (2): 2 
Strength or novelty of the idea (3): 2 
Use or provision of open data (1): 2 
Use or provision of open data (2): 2 
""Open by default"" (1): 2 
""Open by default"" (2): 2 
Value proposition and potential scale (1): 1 
Value proposition and potential scale (2): 2 
Market opportunity and timing (1): 2 
Market opportunity and timing (2): 1 
Triple bottom line impact (1): 2 
Triple bottom line impact (2): 1 
Triple bottom line impact (3): 1 
Knowledge and skills of the team (1): 4 
Knowledge and skills of the team (2): 2 
Capacity to realise the idea (1): 1 
Capacity to realise the idea (2): 3 
Capacity to realise the idea (3): 2 
Appropriateness of the budget to realise the idea: 3" 

和下面的python腳本:

map = {} 
lines=open("new_data.csv",'r').read().splitlines() 
for l in lines: 
    data = l.split('"Overall evaluation:') 
    if len(data) == 2: 
     if data[0] not in map.keys(): 
      map[data[0]] = (0,0) 
     map[data[0]] = (map[data[0]][0]+int(data[1]) , map[data[0]][1]+1) 
for x, y in map.items(): 
    print(str(x) + ", " + str(y[0]/y[1])) 

什麼,我認爲正在發生的事情是,它需要的兩個Overall evaluation:數字的平均值並將其輸出到提交號碼旁邊,是否正確?

+0

順便說一句,如果你的'map'是一個'collections.defaultdict(lambda:(0,0))',那麼讀起來會更容易一些 - 這樣你就可以用條件邏輯來處理未跟蹤的情況你的循環。 –

+0

@CharlesDuffy CR想要代碼OP寫入,而不是代碼他們想要解釋給他們 – jonrsharpe

+0

(使用變量名'map'也是不幸的,因爲它與內置函數衝突)。 –

回答

1

您的map值是每個元組對應於所看到的項目數和相同項目看到的所有值的總和。

劃分兩個確實會返回平均值(儘管因爲它們是整數,所以結果是四捨五入的 - 如果想要浮點結果而不是整數結果,可以考慮將一個或兩個都轉換爲浮點)。

+0

因此它會輸出從兩位評論者那裏收到的所有分數的平均值?我應該把帖子轉到CR嗎? :/ –

+0

不,不要將它移動到CR - @jonrsharpe是正確的,你沒有寫自己的代碼不受歡迎。除非使用Python 3,否則它是平均值*,但是四捨五入爲浮點值* –

+0

err,除非使用Python 3,否則「舍入爲整數值」。 –