我的嵌套循环有问题。我得到了一个输出,但它为我的数据集中的字段数复制了每个输出。
for dat in data_body:
x = float(dat[5])
y = float(dat[6])
point = ogr.Geometry(ogr.wkbPoint)
point.AddPoint(x,y)
feature.SetGeometry(point)
for i, d in enumerate(dat):
for j, field in enumerate(new_fields):
if i == j:
feature.SetField(field, d)
layer.CreateFeature(feature)
对于我的数据集,列表列表data_body
有 13 行数据和 55 列(即 55 个位置)。对于我的列表new_fields
,我有 55 个值,它们对应于data_body
列表列表的列。因此,在我的 object 代码块中feature.SetField(field, d)
。我应该让 data_body 的每个值对应于每个唯一字段,只要行相互匹配,即i
和j
. 但是,与其取回一个包含 13 行数据的对象,这些数据对应于new_fields
. 我得到 13 * 55 个值,即 715 行,其中大约 50% 的数据缺少值。我的输出数据表有点像一个三角形的数据。
我不确定我的问题是否有意义,但如果确实如此,对我的嵌套循环策略的任何帮助都会有所帮助。我认为我的问题是我对循环实际在做什么以及我的if
陈述可能在做什么的概念化。