2016-09-13 22 views
6

Gdy otrzymam pierwszy i drugi element tej serii, działa on prawidłowo, ale od elementu 3, dając błąd podczas próby pobrania.Błąd podczas iteracji przez Pandę serii

type(X_test_raw) 
Out[51]: pandas.core.series.Series 

len(X_test_raw) 
Out[52]: 1393 

X_test_raw[0] 
Out[45]: 'Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...' 

X_test_raw[1] 
Out[46]: 'Ok lar... Joking wif u oni...' 

X_test_raw[2] 

KeyError: 2

Odpowiedz

6

rozważyć serii X_test_raw

X_test_raw = pd.Series(
    ['Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...', 
    'Ok lar... Joking wif u oni...', 
    'PLEASE DON\'T FAIL' 
    ], [0, 1, 3]) 

X_test_raw nie posiada indeks 2 które starają się odwoływać z X_test_raw[2].

Zamiast używać iloc

X_test_raw.iloc[2] 

"PLEASE DON'T FAIL" 

Można iterację serii z iteritems

for index_val, series_val in X_test_raw.iteritems(): 
    print series_val 

Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat... 
Ok lar... Joking wif u oni... 
PLEASE DON'T FAIL 
+0

Dzięki, działa teraz zgodnie z oczekiwaniami :) – Sarang

5

Nie ma indeks o wartości 2.

Próbka:

X_test_raw = pd.Series([4,8,9], index=[0,4,5]) 

print (X_test_raw) 
0 4 
4 8 
5 9 
dtype: int64 

#print (X_test_raw[2]) 
#KeyError: 2 

Jeśli potrzebujesz użycie trzecia wartość iloc:

print (X_test_raw.iloc[2]) 
9 

Jeśli potrzebujesz Iterowanie tylko wartości:

for x in X_test_raw: 
    print (x) 
4 
8 
9 

Jeśli potrzeba indexes i values użytku Series.iteritems:

for idx, x in X_test_raw.iteritems(): 
    print (idx, x) 
0 4 
4 8 
5 9 
+0

Czy jest jakiś sposób dla mnie do iteracji kolejno przez tej serii? – Sarang

+0

Tak, dodaję rozwiązanie. – jezrael