У меня возникли проблемы с попыткой манипулировать файлом CSV и добавить результаты в новый столбец.
По сути, у меня есть файл csv (с разделителями;) с 5 столбцами в настоящее время (декартовы координаты [X, Y] и компоненты [dX, dY] и величина/длина). Я хочу добавить результат некоторых уравнений, которые различаются в зависимости от значения моих декартовых компонентов, в 6-й столбец в этом файле csv (угол).
Пока что мой код таков (математика верна [надеюсь], это просто добавление, с которым у меня проблемы):
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 = dY/dX
theta = math.degrees(math.atan(comp))
angle = 90 + theta
elif dX < 0 and dY > 0:
comp = dX/dY
theta = math.degrees(math.atan(comp))
angle = 360 - theta
elif dX < 0 and dY < 0:
comp = dY/dX
theta = math.degrees(math.atan(comp))
angle = 270 - theta
По сути, я хочу добавить переменную angle
в 6-й столбец для правильной строки моего CSV-файла.
Я попытался создать новый список и добавить (например):
angles = []
...
angles.append(col)
angles.append(angle)
Однако, как вы, наверное, догадались, в итоге у меня получилась такая строка:
[[x, y, dX, dY, magnitude], angle]
Заранее благодарны за Вашу помощь.