Я пытаюсь получить окончательный массив 'process' путем фильтрации необработанного массива 'hitdt' для '-1'; столбец, который содержит -1 в определенной строке в hitdt, будет определять значения этой строки в 'process'. Я использую операторы if в том, что я подозреваю, очень трудоемким способом, но не смог найти рабочие методы.
В настоящее время выполнение def frame()
не возвращает никаких ошибок, но когда я проверяю результирующий массив 'process', новые столбцы остаются NaN
.
'hitdt' - это фрейм входных данных с четырьмя рядами столбцов (от hitdt ['t1'] до hitdt ['t4']). 'process' - это пустой выходной фрейм данных. предыдущее добавление данных в столбцы серии hitdt, не включающее операторы if, было в порядке.
Есть ли способ определить, какой столбец определенной строки во фрейме данных == значение, затем применить операторы только к этой строке и выполнить итерацию по всем строкам?
def frame():
global hitdt, process
#v1
for i, row in hitdt.iterrows():
if -1 == i in hitdt['t3']:
process['tau1'] = hitdt['t2']-hitdt['t1']
process['tau2'] = hitdt['t4']-hitdt['t1']
process['xx'] = geom['x2']
process['yy'] = geom['y2']
process['rho1'] = sqrt(square(geom['x2']-geom['x1']) + square(geom['y2']-geom['y1']))
process['alpha'] = 2.357067
elif -1 == i in hitdt['t4']:
process['tau1'] = hitdt['t3']-hitdt['t2']
process['tau2'] = hitdt['t1']-hitdt['t2']
process['xx'] = geom['x3']
process['yy'] = geom['y3']
process['rho1'] = sqrt(square(x3-x2) + square(y3-y2))
process['alpha'] = 0.749619
elif -1 == i in hitdt['t1']:
process['tau1'] = hitdt['t4']-hitdt['t3']
process['tau2'] = hitdt['t2']-hitdt['t3']
process['xx'] = geom['x4']
process['yy'] = geom['y4']
process['rho1'] = sqrt(square(x3-x4) + square(y3-y4))
process['alpha'] = -0.800233
elif -1 == i in hitdt['t2']:
process['tau1'] = hitdt['t1']-hitdt['t4']
process['tau2'] = hitdt['t3']-hitdt['t4']
process['xx'] = geom['x1']
process['yy'] = geom['y1']
process['rho1'] = sqrt(square(geom['x1']-geom['x4']) + square(geom['y1']-geom['y4']))
process['alpha'] = -1.906772
...
[In]: process
[Out]:
jd frac tau1 tau2 rho1 xx yy alpha hits
0 2457754 0.501143 NaN NaN NaN NaN NaN NaN 3
1 2457754 0.508732 NaN NaN NaN NaN NaN NaN 3
2 2457754 0.512411 NaN NaN NaN NaN NaN NaN 3
3 2457754 0.513932 NaN NaN NaN NaN NaN NaN 3