def get_first_non_null(df):
    a = df.values
col_index = np.isnan(a).argmin(axis=1)
return [a[row, col] for row, col in enumerate(col_index)]
Первое ненулевое значение в строке из списка столбцов Pandas