Допустим, у меня есть этот фрейм данных, содержащий разницу в количестве активных случаев от предыдущего значения в каждой стране:
[in]
import pandas as pd
import numpy as np
active_cases = {'Day(s) since outbreak':['0', '1', '2', '3', '4', '5'], 'Australia':[np.NaN, 10, 10, -10, -20, -20], 'Albania':[np.NaN, 20, 0, 15, 0, -20], 'Algeria':[np.NaN, 25, 10, -10, 20, -20]}
df = pd.DataFrame(active_cases)
df
[out]
Day(s) since outbreak Australia Albania Algeria
0 0 NaN NaN NaN
1 1 10.0 20.0 25.0
2 2 10.0 0.0 10.0
3 3 -10.0 15.0 -10.0
4 4 -20.0 0.0 20.0
5 5 -20.0 -20.0 -20.0
Мне нужно найти среднюю продолжительность дней для пика локальной вспышки в этом COVID-19 dataframe.
Мое решение состоит в том, чтобы найти n-ю строку с первым отрицательным значением в каждом столбце (например, n-я строка первого отрицательного значения в «Australia»: 3, n-я строка первого отрицательного значения в «Албания»: 5) и усредните его.
Однако я понятия не имею, как это сделать в Panda / Python.
. Есть ли способы выполнить эту задачу с помощью простых линий? кода Python / Panda?