У меня есть 3D-фрейм данных с x и y и временем как 3-м измерением. Данные представляют собой 5 видов космических снимков, сделанных в разное время. X и y описывают каждый пиксель.
x y time SIPI classif
7.620001 -77.849990 2018-04-07 1.011107 2.0
2018-10-14 1.023407 2.0
2018-12-28 0.045107 3.0
2020-01-10 0.351107 2.0
2018-06-29 0.351107 2.0
-77.849899 2018-04-07 1.010777 8.0
2018-10-14 0.510562 2.0
2018-12-28 1.410766 4.0
2020-01-10 1.010666 8.0
2018-06-29 2.057068 8.0
-77.849809 2018-04-07 0.986991 1.0
2018-10-14 0.986991 8.0
2018-12-28 0.986991 5.0
2020-01-10 0.984791 5.0
2018-06-29 0.986991 3.0
-77.849718 2018-04-07 0.975965 10.0
2018-10-14 0.964765 7.0
2018-12-28 0.975965 10.0
2020-01-10 0.975965 10.0
2018-06-29 0.975965 3.0
-77.849627 2018-04-07 1.957747 2.0
2018-10-14 0.132445 6.0
2018-12-28 0.589677 2.0
2020-01-10 1.982445 2.0
2018-06-29 3.334456 7.0
Мне нужно сгруппировать данные, и в качестве нового столбца мне нужно значение из столбца classif_rf, которое чаще всего встречается в 5 наборах данных. Значения представляют собой целые числа от 1 до 10. Я хочу добавить условие, которое добавляет только частоту выше 3.
x y classif
7.620001 -77.849990 2.0
-77.849899 8.0
-77.849809 Na
-77.849718 10.0
-77.849627 2.0
Итак, в результате мне нужен фрейм данных, где каждый пиксель имеет значение с самой высокой частотой и когда частота ниже 3, должно быть значение NA.
Может ли это сделать функция pandas .groupby? Я думал о value_counts (), но не знаю, как реализовать это в моем наборе данных.
Заранее спасибо!