У меня есть фрейм данных с 2 идентификаторами (ID1, ID2) и 3 числовыми столбцами (X1, X2, X3) и столбцом с именем «input» (всего 6 столбцов) и n строками.Для каждой строки я хочу получить индекс n-го столбца, чтобы n было последним временем, когда (x1 + x2 + xn ...> = 0) по-прежнему истинно.
Как я могу это сделатьв питоне?
В RI это было сделано с помощью:
tmp = data
for (i in 4:5)
{
data[,i]<- tmp$input - rowSums(tmp[,3:i])
}
output<- apply((data[,3:5]), 1, function(x) max(which(x>0)))
data$output <- output
Я пытаюсь перевести это на Python.Какой может быть лучший способ сделать это?Таких строк может быть N, а M таких столбцов.
Пример данных:
ID1 ID2 X1 X2 X3 INPUT OUTPUT (explanation)
a b 1 2 3 3 2 (X1 = 1, x1+x2 = 3, x1+x3+x3 = 6 ... and after 2 sums, input< sums)
a1 a2 5 2 1 4 0 (X1 = 5, x1+x2 = 7, x1+x3+x3 = 8 ... and even for 1 sum, input< sums)
a2 b2 0 4 5 100 3 (X1=0, X1+X2=4, X1+X2+X3=9, ... even after 3 sums, input>sums)