Давайте предположим, что у меня есть pandas DataFrame в Python, который показывает имя лидера бизнес-единицы для разных юнитов с течением времени. Это может выглядеть примерно так
Leader_Jan Leader_Feb Leader_Mar Leader_Apr
Unit1 Nina Nina Nina Nina
Unit2 Lena Lena NaN Lena
Unit3 Alex Maria Alex Alex
Unit4 Emilia NaN NaN NaN
Unit5 NaN Corinna Petra NaN
и может быть воссоздан как:
import pandas as pd
import numpy as np
a = ['Nina','Nina','Nina','Nina']
b = ['Lena','Lena',np.NaN,'Lena']
c = ['Alex','Maria','Alex','Alex']
d = ['Emilia',np.NaN,np.NaN,np.NaN]
e = [np.NaN,'Corinna','Petra',np.NaN]
data = pd.DataFrame(data=[a,b,c,d,e], columns =['Leader_Jan','Leader_Feb','Leader_Mar','Leader_Apr'], index=['Unit1','Unit2','Unit3','Unit4','Unit5'])
Контекст: Я хотел бы выяснить, в каких руководителях подразделений остаются на очень короткие или очень длительные периоды (в месяцах), чтобы потом выяснить, есть ли командные конфликты в конкретных подразделениях моей компании.
Я хотел бы добавить к фрейму данных минимальные и максимальные значения (в месяцах) на единицу продолжительности пребывания лидеров за один непрерывный период. Из-за возможных прерываний (см. Блок 2 и Блок 3) я не могу просто использовать value_counts для разных имен в каждой строке. Мне скорее нужно найти длину последовательностей разных имен лидеров, разделенных значениями NaN и другими именами. Чтобы увидеть, что я считаю последовательностью, проверьте разные цвета на этом фото:

Как вы можете видеть, прерывание, как в блоках 2 и 3, должно привести к нескольким периодам пребывания. Количество NaN-месяцев в последовательности не должно учитываться.
Результат должен выглядеть следующим образом:
Leader_Jan Leader_Feb Leader_Mar Leader_Apr Min_length_of_stay_leaders \
Unit1 Nina Nina Nina Nina 4
Unit2 Lena Lena NaN Lena 1
Unit3 Alex Maria Alex Alex 1
Unit4 Emilia NaN NaN NaN 1
Unit5 NaN Corinna Petra NaN 1
Max_length_of_stay_leaders
Unit1 4
Unit2 2
Unit3 2
Unit4 1
Unit5 1
Я знаю, что это может быть довольно сложным для подражания, но я бы любил любую помощь / советы и т. Д., Потому что я немного потерян здесь.