我在尝试操作CSV文件并将结果附加到新列时遇到一些问题。在
实际上,我有一个csv文件(delimited;),当前有5列(笛卡尔坐标[X,Y]和分量[dX,dY],以及幅值/长度)。我希望将一些公式的结果添加到这个csv文件的第6列(角度),这些公式因笛卡尔分量的值而不同。在
到目前为止,我的代码是这样的(数学是正确的[希望如此],只是我遇到麻烦的附加):import csv, math
with open("mydata.csv", "rb") as f:
vectors = csv.reader(f, delimiter=";")
for col in vectors:
x = float(col[0])
y = float(col[1])
dX = float(col[2])
dY = float(col[3])
magnitude = float(col[4])
if dX > 0 and dY > 0:
comp = dY/dX
theta = math.degrees(math.atan(comp))
angle = 90 - theta
elif dX > 0 and dY <0:
comp &#61; dY/dX
theta &#61; math.degrees(math.atan(comp))
angle &#61; 90 &#43; theta
elif dX <0 and dY > 0:
comp &#61; dX/dY
theta &#61; math.degrees(math.atan(comp))
angle &#61; 360 - theta
elif dX <0 and dY <0:
comp &#61; dY/dX
theta &#61; math.degrees(math.atan(comp))
angle &#61; 270 - theta
因此&#xff0c;本质上&#xff0c;我想将angle变量添加到第6列中&#xff0c;作为csv文件的正确行。在
我试图创建一个新的列表并附加(例如)&#xff1a;
^{pr2}$
然而&#xff0c;正如你可能已经猜到的那样&#xff0c;我以这样一句话结尾&#xff1a;[[x, y, dX, dY, magnitude], angle]
提前谢谢你的帮助。在