Error iterating through a Pandas series

10,800

Solution 1

consider the series 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 doesn't have an index of 2 which you are trying to reference with X_test_raw[2].

Instead use iloc

X_test_raw.iloc[2]

"PLEASE DON'T FAIL"

You can iterate through the series with 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

Solution 2

There is no index with value 2.

Sample:

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

If need third value use iloc:

print (X_test_raw.iloc[2])
9

If need iterating only values:

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

If need indexes and values use Series.iteritems:

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

Related videos on Youtube

Sarang Manjrekar
Author by

Sarang Manjrekar

Python and R Enthusiast.

Updated on September 16, 2022

Comments

  • Sarang Manjrekar
    Sarang Manjrekar over 1 year

    When I get the first and second elements of this series, it works OK, but from element 3 onwards, giving an error when I try to fetch.

    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

  • Sarang Manjrekar
    Sarang Manjrekar over 7 years
    Is there any way for me to iterate sequentially through this series ?
  • jezrael
    jezrael over 7 years
    Yes, I add solution.