Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Necessidade do .reset_index()

contagem_de_lingua = tmdb.linguaOriginal.value_counts().to_frame().reset_index() tentei gerar o frame sem ressetar o index e atribuir ele a variável contagem_de_lingua.columns = ["linguaOriginal" , "total"] Nesta parte da compilação ocorreu o seguinte erro: ValueError Traceback (most recent call last) in () ----> 1 contagem_de_lingua.columns = ["linguaOriginal" , "total"]

2 frames pandas/libs/properties.pyx in pandas.libs.properties.AxisProperty.set()

/usr/local/lib/python3.6/dist-packages/pandas/core/internals/managers.py in set_axis(self, axis, new_labels) 176 if new_len != old_len: 177 raise ValueError( --> 178 f"Length mismatch: Expected axis has {old_len} elements, new " 179 f"values have {new_len} elements" 180 )

ValueError: Length mismatch: Expected axis has 1 elements, new values have 2 elements

Gostaria de saber o motivo desse erro. Grato desde já.

1 resposta
solução!

Olá Bruno,

O dataframe que você gera com tmdb.linguaOriginal.value_counts().to_frame() tem apenas uma coluna, mais exatamente vai ter um index com os nomes das linguas e uma coluna com a contagem. Você pode ver isso executando diretamente esse código:

Obs.: No seu caso o nome da coluna deve estar linguaOriginal porque você deu um nome diferente do utilizado na aula.

No resultado você pode ver o index com as linguas e a única coluna com a contagem, assim como você tem apenas uma coluna não pode passar dois nomes de colunas em contagem_de_lingua.columns = ["linguaOriginal" , "total"]

Agora quando você executa o reset_index() esse index vai virar uma nova coluna e um novo index vai ser gerado, resultando assim em um novo index numérico e duas colunas:

Veja que agora temos um index, uma coluna chamada index e outra coluna chamada original_language. Totalizando 2 colunas.

Espero ter ajudado, qualquer dúvida é só falar!