2016-09-13 51 views
6

當我得到本系列的第一個和第二個元素時,它工作正常,但從元素3開始,當我嘗試獲取時發生錯誤。迭代Pandas系列時出錯

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

回答

6

考慮一系列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沒有正嘗試與X_test_raw[2]引用的2指數。

而是使用iloc

X_test_raw.iloc[2] 

"PLEASE DON'T FAIL" 

您可以通過一系列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

謝謝,現在按需要工作:) – Sarang

5

沒有與價值2沒有索引。

樣品:

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 

如果需要第三個值使用iloc

print (X_test_raw.iloc[2]) 
9 

如果需要迭代只值:

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

如果需要indexesvalues使用Series.iteritems

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

迭代有沒有辦法對我來說,通過這一系列依次循環? – Sarang

+0

是的,我添加解決方案。 – jezrael