Fiz essa solução para substituir a função .mad() que foi depreciada:
Código Exercício:
df = pd.DataFrame(data = {'Fulano': [8, 10, 4, 8, 6, 10, 8],
'Sicrano': [7.5, 8, 7, 8, 8, 8.5, 7]},
index = ['Matemática',
'Português',
'Inglês',
'Geografia',
'História',
'Física',
'Química'])
df.rename_axis('Matérias', axis = 'columns', inplace = True)
Resolução:
def calcula_dm(lista): #Função que substitui o .mad() e aceita listas
media_lista = 0
somatorio_desvios = 0
for i in lista:
media_lista += i
media_lista = media_lista / len(lista)
for i in lista:
if i >= media_lista:
somatorio_desvios += (i - media_lista)
else:
somatorio_desvios += (i - media_lista) * -1
somatorio_desvios = somatorio_desvios / len(lista)
return somatorio_desvios
dm_notas_fulano = calcula_dm(df['Fulano'].tolist())
dm_notas_fulano
(out) 1.5510204081632648
dm_notas_Sicrano = calcula_dm(df['Sicrano'].tolist())
dm_notas_Sicrano
(out) 0.4693877551020408