error: los índices de la lista deben ser enteros, no flotantes para la mediana

Intentar encontrar la mediana pero seguir obteniendo índices de listas debe ser números enteros, no errores de flotación y no estoy seguro de qué hacer.

sorted_data = sorted(data, key=lambda d:d.all_around_points_earned)
if len(data)%2==0:
    a = sorted_data[len(data)/2]
    b = sorted_data[len(data)/2-1]
    median_val = (a+b)/2
else:
    median_val = sorted_data[(len(data)-1)/2]
print(median_val) # median val

Respuestas a la pregunta(2)

Su respuesta a la pregunta