En este artículo corregiremos el error: La longitud de los valores no coincide con la longitud del índice en Python.
Python3
# importing pandas import pandas as pd sepal_length = [5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9] sepal_width = [4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.1, 5.2, 5.3] petal_length = [3.3, 4.6, 4.7, 5.6, 6.7, 5.0, 4.8] petal_width = [3.6, 5.6, 5.4, 4.6, 4.4, 5.0, 4.9] # DataFrame with 2 columns df = pd.DataFrame({'sepal_length(cm)': sepal_length, 'sepal_width(cm)': sepal_width}) df['petal_length(cm)'] = petal_length df['petal_width(cm)'] = petal_width print(df)
Producción:
ValueError: Length of values (7) does not match length of index (10)
Motivo del error:
La longitud del índice del DataFrame de pandas (es decir, la longitud de la columna del DataFrame actual), que es 10 en este caso, no es igual a la longitud de la nueva lista o array NumPy, que es 7 en este caso.
pd.Index.size!=len(petal_width)
Arreglando el error:
Este error se puede solucionar preprocesando la nueva lista o array NumPy que será una columna de DataFrame mediante el uso de la función pandas Series() que en realidad convierte la lista o array NumPy al tamaño de la longitud de columna de DataFrame agregando NaN si la lista o la array NumPy tienen una longitud menor; de lo contrario, si la lista o NumPy tienen una longitud mayor, entonces toma la lista o la array NumPy con la longitud de las columnas del marco de datos de pandas.
Sintaxis para lista:
Considere list1 como una lista de python
df['new_column'] = pd.Series(list1)
Sintaxis para la array NumPy:
Considere numarr como una array numpy
df['new_column'] = pd.Series(numarr)
Python3
# importing pandas import pandas as pd # importing numpy import numpy as np sepal_length = [5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9] sepal_width = [4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.1, 5.2, 5.3] petal_length = [3.3, 4.6, 4.7, 5.6, 6.7, 5.0, 4.8] # numpy array of length 7 petal_width = np.array([3.6, 5.6, 5.4, 4.6, 4.4, 5.0, 4.9]) # DataFrame with 2 columns of length 10 df = pd.DataFrame({'sepal_length(cm)': sepal_length, 'sepal_width(cm)': sepal_width}) # Adding list to pandas DataFrame df['petal_length(cm)'] = pd.Series(petal_length) # Adding numpy array to pandas DataFrame df['petal_width(cm)'] = pd.Series(petal_width) print(df)
Producción:
Publicación traducida automáticamente
Artículo escrito por lokeshpotta20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA