Iterate over pandas series

Alan picture Alan · May 10, 2018 · Viewed 12.1k times · Source

I want to travel round the series index

In [44]: type(ed1)
Out[44]: pandas.core.series.Series

In [43]: for _, row  in ed1.iterrows():
...:     print(row.name)

and I get thie error:

  AtributeError: 'Series' ojbect has no attribute 'iterrows'

Is series has any methods like iterrows? thank a lot

Answer

cs95 picture cs95 · May 10, 2018

Series objects define an iteritems method (the data is returned as a iterator of index-value pairs.

for _, val in ed1.iteritems():
    ...

Alternatively, you can iterate over a list by calling tolist,

for val in ed1.tolist():
    ...

Word of advice, iterating over pandas objects is generally discouraged. Wherever possible, seek to vectorize. To that end, I recommend taking a look at my answer to How to iterate over rows in a DataFrame in Pandas? which discusses better alternatives to iteration.