Built with Tutify.io

    AIStudyLabs

    Pandas Iterate Over Series

    Pandas Iterate Over Series

    Like any other data structure, Pandas Series also has a way to iterate (loop through) over rows and access elements of each row. You can use the for loop to iterate over the pandas Series.

    You can also use multiple functions to iterate over a pandas Series like iteritems(), items() and enumerate() function. In this article, I will explain how to iterate rows of pandas Series using these functions with examples.

    Key Points –

    <a id="h-quick-examples-of-iterate-over-series"></a>

    Quick Examples of Iterate Over Series

    If you are in a hurry, below are some quick examples of how to iterate over series.

    
    # Quick examples of iterate over series
    
    # Example 1: Use iterate over index series
    for indx in ser:
        print(indx)
        
    # Example 2: Use Series.iteritems() function 
    # To iterate over all the elements 
    for indx in ser.iteritems():
        print(indx)
    
    # Examples 3: Iterate over series 
    # Using Series.items()
    for indx, values in ser.items():
        print('index: ', indx, 'value: ', values)
        
    # Examples 4: Iterate over series 
    # Using Series.iteritems()
    for indx, values in ser.iteritems():
        print('index: ', indx, 'value: ', values)
        
    # Examples 5: Using enumerate()
    for rownum,(indx,values) in enumerate(ser.iteritems()):
        print('row number: ', rownum, 'index: ', indx, 'value: ', values)
    

    <a id="h-create-pandas-series"></a>

    Create Pandas Series

    Pandas Series is a one-dimensional, Index-labeled data structure available in the Pandas library. It can store all the datatypes such as strings, integers, float, and other python objects. We can access each element in the Series with the help of corresponding default indices.

    Now, let’s create pandas seriesusing a list of values.

    
    import pandas as pd
      
    # Create the Series
    ser = pd.Series([20000,25000,23000,28000,55000,23000,28000])
      
    # Create the Index
    index = ['Java','Spark','PySpark','Pandas','NumPy','Python',"Oracle"]
      
    # Set the index
    ser.index = index
    print(ser)
    

    Yields below output.

    
    # Output:
    Java       20000
    Spark      25000
    PySpark    23000
    Pandas     28000
    NumPy      55000
    Python     23000
    Oracle     28000
    dtype: int64
    

    <a id="h-pandas-iterate-over-series"></a>

    Pandas Iterate Over Series

    One of the simple ways to access elements of the pandas Series is by using Python for loop. Here I will iterate the Series and get the values one by one and print it on the console. For examples.

    
    # Use iterate over index series
    for indx in ser:
        print(indx)
    

    Yields below output.

    
    # Output:
    20000
    25000
    23000
    28000
    55000
    23000
    28000
    

    <a id="h-iterate-over-all-the-elements-of-series-using-iteritems"></a>

    Iterate Over All the Elements of Series using iteritems()

    Series.iteritems() function is used to iterate all the elements in the given series object. The following is the syntax of the iteritems().

    
    # Syntax of Series.iteritems
    Series.iteritems()
    

    The iteritems() function returns the iterable of tuples containing the indx, values from a Series.

    
    # Iterate over all the elements using Series.iteritems()
    for indx in ser.iteritems():
        print(indx)
    

    In the above example, iteritems() is used to iterate over both the index and values of the ser Series, and for each iteration, it prints the index and the corresponding value. This example yields the below output.

    
    # Output:
    ('Java', 20000)
    ('Spark', 25000)
    ('PySpark', 23000)
    ('Pandas', 28000)
    ('NumPy', 55000)
    ('Python', 23000)
    ('Oracle', 28000)
    

    Here is another example. If you want to iterate over all the elements of a Pandas Series using iteritems(). I will leave this to you to run and explore the output.

    
    # Iterate over series using Series.iteritems()   
    for indx, values in ser.iteritems():
        print('index: ', indx, 'value: ', values)
    

    <a id="h-iterate-over-series-using-amp-series-items"></a>

    Iterate Over Series Using & Series.items()

    Pandas Series.items() function iterates over a Series and returns the iterable of tuples containing the indx, values from a Series. For E.x, for indx, values in ser.items():.

    
    # Iterate over series using Series.items()
    for indx, values in ser.items():
        print('index: ', indx, 'value: ', values)
    

    Yields below output.

    
    # Output:
    index:  Java value:  20000
    index:  Spark value:  25000
    index:  PySpark value:  23000
    index:  Pandas value:  28000
    index:  NumPy value:  55000
    index:  Python value:  23000
    index:  Oracle value:  28000
    

    <a id="h-using-enumerate"></a>

    Using enumerate()

    You can also use enumerate() with Series then, apply for loop to get the values of series, in the form of rownum, indx and values.

    
    # Using enumerate()
    for rownum,(indx,values) in enumerate(ser.iteritems()):
        print('row number: ', rownum, 'index: ', indx, 'value: ', values)
    

    Yields below output.

    
    # Output:
    row number:  0 index:  Java value:  20000
    row number:  1 index:  Spark value:  25000
    row number:  2 index:  PySpark value:  23000
    row number:  3 index:  Pandas value:  28000
    row number:  4 index:  NumPy value:  55000
    row number:  5 index:  Python value:  23000
    row number:  6 index:  Oracle value:  28000
    

    <a id="h-complete-example-for-iterate-over-series"></a>

    Complete Example For Iterate Over Series

    
    import pandas as pd
      
    # Create the Series
    ser = pd.Series([20000,25000,23000,28000,55000,23000,28000])
      
    # Create the Index
    index = ['Java','Spark','PySpark','Pandas','NumPy','Python',"Oracle"]
      
    # Set the index
    ser.index = index
    print(ser)
    
    # Use iterate over index series
    for indx in ser:
        print(indx)
        
    # Use Series.iteritems() function to
    # Iterate over all the elements 
    for indx in ser.iteritems():
        print(indx)
    
    # Iterate over series using Series.items()
    for indx, values in ser.items():
        print('index: ', indx, 'value: ', values)
        
    # Iterate over series using Series.iteritems()
    for indx, values in ser.iteritems():
        print('index: ', indx, 'value: ', values)
        
    # Using enumerate()
    for rownum,(indx,values) in enumerate(ser.iteritems()):
        print('row number: ', rownum, 'index: ', indx, 'value: ', values)
    

    <a id="h-frequently-asked-questions-on-pandas-iterate-over-series"></a>

    Frequently Asked Questions on Pandas Iterate Over Series

    To iterate over all elements in a Pandas Series, you can use various methods, such as using a for loop, the iteritems() method, or vectorized operations.

    Both methods provide index-value pairs, but iteritems() is more memory-efficient as it yields items one at a time, while items() returns a list of tuples representing the index-value pairs.

    You can iterate over only the values of a Pandas Series using a simple for loop. For example, the for loop iterates directly over the values of the series_data Series, printing each value in each iteration. This approach is straightforward when you only need to access the values and don't require the corresponding index.

    vectorized operations are generally more efficient than explicit iteration, as Pandas is optimized for such operations.

    iterrows() is used for DataFrames, providing both index and row data. For Series, use iteritems() for better performance.

    <a id="h-conclusion"></a>

    Conclusion

    In this article, you have learned how to iterate over pandas Series using Series.iteritems(), Series.items() and enumerate() functions with examples.

    Happy Learning !!

    <a id="h-related-articles"></a>

    Related Articles