2017-05-04 77 views
1

我有一個三列的excel文件。我想讓第一列成爲關鍵字,然後創建下一列的列表作爲值。將一個值附加到字典

然而,.append功能似乎並沒有爲我工作

d = {} 

for index, row in df.iterrows(): 
    d[row[0]] = row[1] 
    d[row[0]].append(row[2]) 

AttributeError的:「統一」對象有沒有屬性「追加」

回答

2

您作爲分配對象的unicode字典值,然後嘗試在該unicode對象上調用append。相反,你應該分配初始值作爲一個表,如下所示:

d = {} 

for index, row in df.iterrows(): 
    d[row[0]] = [row[1]] 
    d[row[0]].append(row[2]) 

一個更好的方法是:

d[row[0]] = row[1:] 

或者是:

a, *b = row 
d[a] = b 
+0

工作就像一個魅力。感謝親的提示,以及幫助我​​更好地理解 –

+0

其實,d [行[0]] =行[1:]不起作用的原因。它不會選擇正在迭代的當前行的第一行,而是選擇文件中的第一行。所以輸出如下所示:標題值0,標題值1,標題,值2等 –