1
resposta

TypeError: object of type 'NoneType' has no len() função mais_proximos

# função mais_proximos de n usuarios
def mais_proximos_de(x_id, n = None):
  distancias = distancia_de_todos(x_id, n = n)
  distancias = distancias.sort_values("distancia")
  distancias = distancias.set_index("n_id").drop(x_id)
  return distancias

def distancia_de_todos(x_id, n = None):
  todos_os_usuarios = notas['usuarioid'].unique()
  if n:
    todos_os_usuarios = todos_os_usuarios[:n]
  distancias = [distancia_de_usuarios(x_id, usuario_id) for usuario_id in todos_os_usuarios]
  distancias = pd.DataFrame(distancias, columns = ["x_id", "n_id", "distancia"])
  return distancias


Quando coloco
mais_proximos (1, n = 50)

Aparece o seguinte erro:

TypeError                                 Traceback (most recent call last)
<ipython-input-66-3c237cbb257d> in <module>()
      1 
----> 2 mais_proximos(1, n = 50)

4 frames
/usr/local/lib/python3.6/dist-packages/pandas/core/internals/construction.py in _list_to_arrays(data, columns, coerce_float, dtype)
    559     else:
    560         # list of lists
--> 561         content = list(lib.to_object_array(data).T)
    562     # gh-26429 do not raise user-facing AssertionError
    563     try:

pandas/_libs/lib.pyx in pandas._libs.lib.to_object_array()

TypeError: object of type 'NoneType' has no len()


Gostaria de saber o que esta errado e como resolver
1 resposta

Olá Bruna, boa tarde.

Você chamou outra função que não é a declarada no seu código. Você declarou a função mais_proximo_de, mas chamou a função mais_proximo

Espero ter ajudado, grande abraço!