Como corrigir: o comprimento dos valores não corresponde ao comprimento do índice
Um erro que você pode encontrar ao usar pandas é:
ValueError: Length of values does not match length of index
Este erro ocorre quando você tenta atribuir uma matriz de valores NumPy a uma nova coluna em um DataFrame do pandas, mas o comprimento da matriz não corresponde ao comprimento atual do índice.
O exemplo a seguir mostra como corrigir esse erro na prática.
Como reproduzir o erro
Suponha que temos o seguinte DataFrame do pandas:
import pandas as pd #define DataFrame df = pd. DataFrame ({' points ': [25, 12, 15, 14], ' assists ': [5, 7, 13, 12]}) #view DataFrame print (df) assist points 0 25 5 1 12 7 2 15 13 3 14 12
Agora digamos que tentamos adicionar uma nova coluna chamada “bounces” como um array NumPy:
import numpy as np
#attempt to add 'rebounds' column
df[' rebounds '] = np. array ([3, 3, 7])
ValueError : Length of values (3) does not match length of index (4)
Recebemos um ValueError porque estamos tentando adicionar um array NumPy de comprimento 3 a um DataFrame que possui um índice de comprimento 4 .
Como corrigir o erro
A maneira mais fácil de corrigir esse erro é simplesmente criar uma nova coluna usando uma série pandas em vez de um array NumPy.
Por padrão, se o comprimento da série pandas não corresponder ao comprimento do índice DataFrame, os valores NaN serão inseridos:
#create 'rebounds' column
df[' rebounds '] = pd. Series ([3, 3, 7])
#view updated DataFrame
df
points assists rebounds
0 25 5 3.0
1 12 7 3.0
2 15 13 7.0
3 14 12 NaN
Usando uma série pandas, podemos adicionar com sucesso a coluna “rejeições” e os valores ausentes são simplesmente preenchidos com NaN.
Observe que podemos converter rapidamente valores NaN para outro valor (como zero) usando o método fillna() da seguinte forma:
#fill in NaN values with zero
df = df. fillna (0)
#view updated DataFrame
df
points assists rebounds
0 25 5 3.0
1 12 7 3.0
2 15 13 7.0
3 14 12 0.0
Observe que o valor NaN foi convertido para zero.
Recursos adicionais
Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:
Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas