Вы можете сделать это немного по-другому без применения.
dd = {1:'SEG', 2:'Lim', 3:'Hu', 4:'Full'} #Create a dictionary mapping number of Trues to level label.
df['Level'] = (df.iloc[:, 1:] != '00').sum(axis=1).map(dd)
Вывод:
Final DIV0 DIV1 DIV2 DIV3 Level
0 78797071 78 79 70 71 Full
1 23000000 23 00 00 00 SEG
2 23450000 23 45 00 00 Lim
3 45678900 45 67 89 00 Hu
Объяснение.
Использование iloc
, целочисленное расположение и нарезканотации, мы возвращаем все строки и столбцы в расположении 1 до конца. Затем мы создаем булеву матрицу, чтобы узнать позицию, где значение не равно '00'. Теперь давайте суммируем число истинных значений в каждой строке и используем map, чтобы сопоставить это значение с правильной меткой, используя словарь.