我尝试使用两个字段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的新手,任何建议都会有所帮助!
答案 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.
+=