Jak naprawić: błąd wartości: wszystkie tablice muszą mieć tę samą długość
Błąd, który możesz napotkać podczas korzystania z pand, to:
ValueError : All arrays must be of the same length
Ten błąd występuje, gdy próbujesz utworzyć ramkę DataFrame pandy, a nie wszystkie kolumny w ramce DataFrame mają tę samą długość.
Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.
Jak odtworzyć błąd
Załóżmy, że próbujemy utworzyć następującą ramkę danych pandy:
import pandas as pd #define arrays to use as columns in DataFrame team = ['A', 'A', 'A', 'A', 'B', 'B', 'B'] position = ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'] points = [5, 7, 7, 9, 12, 9, 9, 4] #attempt to create DataFrame from arrays df = pd. DataFrame ({' team ': team, ' position ': position, ' dots ': dots}) ValueError : All arrays must be of the same length
Otrzymujemy błąd, który informuje nas, że każda tablica nie ma tej samej długości.
Możemy to sprawdzić, drukując długość każdej tablicy:
#print length of each array
print ( len (team), len (position), len (points))
7 8 8
Widzimy, że tabela „zespół” ma tylko 7 elementów, podczas gdy tabele „pozycja” i „punkty” mają po 8 elementów.
Jak naprawić błąd
Najłatwiejszym sposobem rozwiązania tego błędu jest po prostu upewnienie się, że każda używana tablica ma tę samą długość:
import pandas as pd #define arrays to use as columns in DataFrame team = ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'] position = ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'] points = [5, 7, 7, 9, 12, 9, 9, 4] #create DataFrame from arrays df = pd. DataFrame ({' team ': team, ' position ': position, ' dots ': dots}) #view DataFrame df team position points 0 A G 5 1 A G 7 2 A F 7 3 A F 9 4 B G 12 5 B G 9 6 B F 9 7 B F 4
Zauważ, że tym razem każda tablica ma tę samą długość.
Kiedy więc użyjemy tablic do utworzenia ramki DataFrame pand, nie pojawi się błąd, ponieważ każda kolumna ma tę samą długość.
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