使用defaultdict从.xlsx文件追加列表

时间:2015-12-08 19:10:43

标签: python excel openpyxl defaultdict

我尝试使用两个字段ID和xy坐标来获取excel文件,并创建一个字典,以便每个ID都是所有xy坐标值的键。

例如,excel文件如下所示: [1] [1]:http://i.stack.imgur.com/P2agc.png

但是有超过900个oID值

我希望最终的格式是这样的, [(' 0',[ - 121.129247,37.037939,-121.129247,37.037939,-121.056516,36.997779]), (' 1',[all,the,coordinates,with,oID,of 1]),(' 2' [all,the,coordinate,with,oID,of,2] ]等)]

我正在尝试使用for语句迭代excel表以填充前200行的列表,然后将其放入默认字典中。

这是我到目前为止所做的:

wb=openpyxl.load_workbook('simpleCoordinate.xlsx')
sheet=wb['Sheet1']

from collections import defaultdict

CoordDict = defaultdict(list)
for i in range (1,201,1):
    coordinate_list=[(sheet.cell(row=i,column=1).value, sheet.cell(row=i,     column=2).value)]

for oID, xy in coordinate_list:
   CoordDict[oID].append(xy)

print(list(CoordDict.items()))

返回:

[(11, ['-121.177487,35.49885'])]

只有excel表的第200行,而不是整件事。我不确定我做错了什么,是否有for声明?我是以错误的方式思考这个问题吗?我是python的新手,任何建议都会有所帮助!

1 个答案:

答案 0 :(得分:1)

You are overwriting =SUMPRODUCT((C2:R100="APPLE")*(X2:X100>0.5)) 200 times. Instead, create it, then append to it with the coordinate_list operator.

+=