Как рассчитать значения на основе значений ячеек в нескольких разных строках в панде - PullRequest
0 голосов
/ 26 сентября 2019

У меня длинный кадр данных с измерениями, приходящими каждый час.В этом кадре данных я хочу вычислить значение коррекции смещения на основе нескольких значений в двух (или трех) разных строках (для каждого времени).Поэтому каждый раз я хочу извлечь значения для двух разных строк BS = (1 и 3) и использовать несколько значений в этих строках для вычисления значения смещения.

Это несколько похоже на эту проблему: применить функцию к кадру данных, включающему две строки НО, иногда у меня не все строки, поэтому у меня могут быть периоды времени, когда данные от датчика 2 отсутствуют, что означает, что я должен проверить, является ли значение BSисправить для каждой строки, я не могу просто посчитать количество строк.

import pandas as pd
df=pd.DataFrame({'time':['2015-07-04','2015-07-04','2015-07-04','2015-07-05','2015-07-05','2015-07-05'],'BS':[1,2,3,1,2,3],
                 'HA':[0.264095,2.4,6.157189,4.570424,2.41,4.180326],'VA':[1.623784,1.8,1.619461,1.623786,1.82,1.619468],'Distance':[19.36054,19.8,20.90246,19.36084,19.8,20.90246],
                 'x':[21.02,19.8,17.864,21.005,19.8,17.849],'y':[0,0,0,0,0,0],'z':[1,1,1,1,1,1]})
df.head(6)

Для каждого периода времени я хотел бы найти значение смещения HA0, где AB близко к нулю, где

A=x(BS1)+(Distance(BS1)*np.sin(VA(BS1)*np.cos(HA(BS1+HA0))
B=x(BS3)+(Distance(BS3)*np.sin(VA(BS3)*np.cos(HA(BS8+HA0))

Я хотел бы оптимизировать HA0 и добавить в каждую строку одно и то же время: примерно так:

df=pd.DataFrame({'time':['2015-07-04','2015-07-04','2015-07-04','2015-07-05','2015-07-05','2015-07-05'],'BS':[1,2,3,1,2,3],
                 'HA':[0.264095,2.4,6.157189,4.570424,2.41,4.180326],'VA':[1.623784,1.8,1.619461,1.623786,1.82,1.619468],'Distance':[19.36054,19.8,20.90246,19.36084,19.8,20.90246],
                 'x':[21.02,19.8,17.864,21.005,19.8,17.849],'y':[0,0,0,0,0,0],'z':[1,1,1,1,1,1],'HA0':[4.4486318,4.4486318,4.4486318,2.471724,2.471724,2.471724]})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...