我想在python 3的csv文件中添加一个新列.csv文件有一个标题行,并且我不需要的前两列这点。其他8列包含4个多边形坐标。我试图添加一个新的列,从csv中的点计算区域。我在堆栈溢出中看到了几个类似的问题,并且试图在我的代码中使用这些信息,但此时只显示了csv的最后一行,我认为该区域也没有正确计算。有什么建议么? (仅供参考,这是我的一个CSV第一码) 这里是我的代码:在python中的csv中新添加的列执行计算
with open(poly.csv, 'rU')as input:
with open ('polyout.csv', 'w') as output:
writer = csv.writer(output, lineterminator='\n')
reader=csv.reader(input)
coords=[]
row =next(reader)
row =next(reader,None)
coords=row[2:]
prev_de=coords[-2]
prev_dn=coords[-1]
prev_de=float(prev_de)
prev_dn=float(prev_dn)
areasq=float(0)
for de,dn in zip(coords[:-1:2], coords[1::2]):
areasq+= (float(de)*float(prev_dn))-(float(dn)*float(prev_de))
prev_de, prev_dn = de,dn
area =abs(areasq)/2
for row in reader:
row.append(area)
coords.append(row)
writer.writerows(coords)
print(row)
你可以尝试跳格的第二个? – MattCom
计算列中的不同区域,但不是我所期望的答案......也不知道为什么它只打印csv的最后一行? – Nikki
它打印了csv的最后一行,因为'print'不在'second' for循环中,因此只有在第二个for循环遍历整个csv文件并将'row'设置为最后一行在文件 –