Я хочу написать функцию для расчета режима столбца в группе данных. Если значения группы не имеют режима, первое исключение: вычислить медиану, а если значения группы - все нулевые значения, второе исключение: ничего не делать. Пример кадра данных подобен приведенному ниже:
dataframe = pd.DataFrame({'b':['b1','b1','b1','b1','b1','b1','b2','b2','b2','b2','b2','b2','b3','b3','b3'],'d':[0.1,None,0.12,None,None,0.13,1,2,1,1,None,None,None,None,None]})
Функция выглядит следующим образом:
def fill_mode(group):
try:
group['mode'] = mode(group['d'])
except:
not_nulls = group[~group['d'].isnull()]
group['mode'] = median(not_nulls['d'])
except:
pass
return group
А функция применения выглядит следующим образом:
dataframe = dataframe.groupby('b').apply(fill_mode)
Что вызывает эта ошибка:
SyntaxError: по умолчанию «кроме:» должен быть последним
Окончательный вывод должен быть таким: