3 ответов:
Вместо
firstможно использоватьhead:np.random.seed(123) df = pd.DataFrame({'A':np.random.choice(list('ABC'), 50),'values':np.random.randint(0,100,50)}) df.groupby('A').head(1)Вывод:
A values 0 C 75 1 B 34 4 A 22
IIUC, это должно работать для вас, используя
first_valid_index:df.groupby('grouping_variable').apply(lambda x: x.first_valid_index())Пример:
>>> df data group 0 -0.430336 b 1 2.323743 b 2 -0.065441 b 3 -0.894935 b 4 0.529603 b 5 -1.386138 b 6 -1.198493 b 7 -1.025802 a 8 1.151468 b 9 -0.831743 b >>> df.groupby('group').apply(lambda x: x.first_valid_index()) group a 7 b 0
Comments