2017-05-04 61 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等 –