Jak naprawić: długość wartości nie odpowiada długości indeksu


Błąd, który możesz napotkać podczas korzystania z pand, to:

 ValueError: Length of values does not match length of index

Ten błąd występuje, gdy próbujesz przypisać tablicę wartości NumPy do nowej kolumny w pandzie DataFrame, ale długość tablicy nie odpowiada bieżącej długości indeksu.

Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą ramkę DataFrame pand:

 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

Załóżmy teraz, że próbujemy dodać nową kolumnę o nazwie „odbicia” jako tablicę 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)

Otrzymujemy błąd ValueError , ponieważ próbujemy dodać tablicę NumPy o długości 3 do ramki DataFrame mającej indeks o długości 4 .

Jak naprawić błąd

Najłatwiejszym sposobem naprawienia tego błędu jest po prostu utworzenie nowej kolumny przy użyciu serii pand zamiast tablicy NumPy.

Domyślnie, jeśli długość serii pand nie odpowiada długości indeksu DataFrame to zostaną wprowadzone wartości NaN:

 #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

Wykorzystując serię pandy z powodzeniem możemy dodać kolumnę „odbicia” a brakujące wartości po prostu uzupełnimy NaN.

Zauważ, że możemy szybko przekonwertować wartości NaN na inną wartość (np. zero) za pomocą metody fillna() w następujący sposób:

 #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

Należy zauważyć, że wartość NaN została przekonwertowana na zero.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *