ネストされたループに問題があります。出力を取得していますが、データ セット内のフィールド数に対して各出力が複製されています。
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
ステートメントが行っている可能性があることの概念化だと思います。