Built with Tutify.io

    AIStudyLabs

    Pandas Get Last Row from DataFrame?

    Pandas Get Last Row from DataFrame?

    To get the last row from a Pandas DataFrame, you can use either the iloc indexer with a negative index or the tail() method. To get the last row of a Pandas DataFrame, you can utilize the iloc[-1] property or the tail(1) method. iloc[] allows the selection of rows and columns by position/index. If the specified index is out of range, it raises an IndexError. In this article, I will explain the get the last row of Pandas DataFrame.

    pandas loc[] is another property that is used to operate on the column and row labels. For a better understanding of these two learn the differences and similarities between pandas loc[] vs iloc[].

    Key Points –

    <a id="h-quick-example-of-get-the-last-row"></a>

    Quick Example of Get the Last Row

    If you are in a hurry, below are some quick examples of getting the last row of Pandas DataFrame.

    
    # Quick examples of get the last row of dataframe
    
    # Example 1: Get last row 
    # Using row position
    print(df.iloc[-1])
    
    # Example 2: Get the last row 
    # Use tail()
    print(df.tail(1))
    
    # Example 3: Get last row 
    # Using range index
    print(df.iloc[-1:])
    
    # Example 4: Get last row value 
    # Using particular column
    print(df['Fee'].iloc[-1])
    
    # Example 5: Get last row value 
    # Using index range
    print(df['Discount'].iloc[:-1])
    
    # Example 6: Get last row 
    # Using loc() function
    print(df.loc[df.index[-1]])
    
    # Example 7: Get last row 
    # Using values[]
    print(df.values[-1:])
    
    # Example 8: Get last row of particular column
    print(df['Fee'].values[-1:])
    
    # Example 9: Get the last row of DataFrame as a list
    print(df.iloc[-1].tolist())
    

    Let's create a DataFrame using data from the Python dictionary using data from the Python dictionary then use the above examples to get the first row of DataFrame.

    
    # Import pandas library
    # Create pandas DataFrame
    import pandas as pd
    technologies = {
        'Courses':["Spark","PySpark","Hadoop","Python","pandas"],
        'Fee' :[20000,25000,26000,22000,24000],
        'Duration':['30days','40days','35days','40days','60days'],
        'Discount':[1000,2300,1200,2500,2000]
                  }
    index_labels=['r1','r2','r3','r4','r5']
    df = pd.DataFrame(technologies, columns = ['Courses', 'Fee', 'Duration', 'Discount'], index = index_labels)
    print("Create a DataFrame:\n", df)
    

    Yields below output.

    <a id="h-using-nbsp-iloc-to-get-the-last-row"></a>

    Using iloc[] to Get the Last Row

    To get the last row of a Pandas DataFrame using iloc[], you simply need to use -1 as the index within the iloc[] method. iloc[-1] property returns the last row of DataFrame in the form of Pandas Series.

    In the below example, to get the last row of a Pandas DataFrame using iloc[] with negative indexing. Here, df.iloc[-1] accesses the last row of the DataFrame using negative indexing. This is a concise and commonly used method to retrieve the last row.

    Related Article: Get the first row of Pandas DataFrame.

    
    # Get the last row 
    # Using row position
    df2 = df.iloc[-1]
    print("Get the last row from the DataFrame:\n", df2)
    

    Yields below output.

    We can also get the last row of Pandas DataFrame by providing an index range i.e.[-1:] to iloc[] attribute. This syntax will be returned the last in the form of DataFrame. For example,

    
    # Get last row using range index
    df2 = df.iloc[-1:]
    print("Get the last row from the DataFrame:\n", df2)
    
    # Output:
    # Get the last row from the DataFrame:
    #    Courses    Fee Duration  Discount
    # r5  pandas  24000   60days      2000
    

    <a id="h-get-the-last-row-for-a-particular-column"></a>

    Get the Last Row for a Particular Column

    If you want to get the last row based on a particular column, we can pass the specified column into DataFrame and then call the iloc[] attribute, it will return the last row based on the specified column.

    Replace Fee with the actual name of the column for which you want to get the last value. This will print the last value in the specified column of your DataFrame.

    
    # Get last row value using particular column
    df2 = df['Fee'].iloc[-1]
    print("Get the last row value of specified column:\n", df2)
    
    # Output:
    # Get the last row value of specified column:
    # 24000
    

    Alternatively, you can retrieve the last row based on a particular column using the index range of the iloc[] attribute.

    
    # Get last row value using index range
    df2 = df['Discount'].iloc[:-1]
    print("Get the last row value:\n", df2)
    
    # Output:
    # Get the last row value:
    # r5    2000
    # Name: Discount, dtype: int64
    

    <a id="h-get-the-last-row-using-nbsp-loc"></a>

    Get the Last Row using loc()

    We can also get the last row of DataFrame using the loc[] attribute for that, we have to pass the last row index with the help of the index[]. It will return the last row as a Series object.

    When using loc[] to get the last row of a Pandas DataFrame, you need to use the index label of the last row. If your DataFrame has a default integer-based index. This assumes that the index labels are integers. If your DataFrame has a custom index, you would use the actual label instead.

    
    # Get last row using loc() function
    df2 = df.loc[df.index[-1]]
    print("Get the last row from the DataFrame:\n", df2)
    
    # Output:
    # Get the last row from the DataFrame:
    # Courses     pandas
    # Fee         24000
    # Duration    60days
    # Discount     2000
    # Name: r5, dtype: object
    

    <a id="h-get-the-last-row-of-pandas-using-values-nbsp"></a>

    Get the Last Row of Pandas using values[]

    Pandas DataFrame.values attribute is used to return a Numpy representation of the given DataFrame. Use this attribute to get the last row of DataFrame in the form of a NumPy array.

    
    # Get last row using values[] 
    df2 = df.values[-1:]
    print("Get the last row from the DataFrame:\n", df2)
    
    # Output:
    # Get the last row from the DataFrame:
    # [['pandas' 24000 '60days' 2000]]
    
    # Get last row of particular column
    df2 = df['Fee'].values[-1:]
    print("Get the last row from the DataFrame:\n", df2)
    
    # Output:
    # Get the last row from the DataFrame:
    # [24000]
    

    <a id="h-get-the-last-row-of-dataframe-using-the-tail"></a>

    Get the Last Row of DataFrame using the tail()

    The pandas.DataFrame.tail() method returns the last n rows of DataFrame. We can use this tail() function to get only the last row of the DataFrame, for that, we pass '1' as an argument to this function. It will return the last row of DataFrame.

    
    # Get the last row use head()
    df2 = df.tail(1)
    print("Get the last row from the DataFrame:\n", df2)
    
    # Output:
    # Get the last row from the DataFrame:
    #     Courses    Fee Duration  Discount
    # r5  pandas  24000   60days      2000
    

    <a id="h-get-the-last-row-of-pandas-as-a-list"></a>

    Get the Last Row of Pandas as a List

    As we know from the above, we have got the last row of DataFrame using the df.iloc[-1]. It has given the result as a series object and then uses the series.tolist() function, we can get the last row of the DataFrame in the form of a list. For example,

    
    # Get the last row of DataFrame as a list
    df2 = df.iloc[-1].tolist()
    print("Get the last row from the DataFrame:\n", df2)
    
    # Output:
    # Get the last row from the DataFrame:
    # ['pandas', 24000, '60days', 2000]
    

    <a id="h-frequently-asked-questions-on-get-last-row-from-dataframe"></a>

    Frequently Asked Questions on Get Last Row from DataFrame

    To get the last row from a Pandas DataFrame, you can use either the .iloc indexer with a negative index or the .tail() method.

    You can use the .tail() method to get the last n rows of a Pandas DataFrame, and if you set n to 1, it will give you only the last row. The .tail(1) method returns a DataFrame containing the last row of the original DataFrame. If you only need the last row and want the result as a Series instead of a DataFrame.

    While both methods will give you the last row, there is a subtle difference. .iloc[-1] returns a Series object, while .tail(1) returns a DataFrame with one row. If you want a Series, use .iloc[-1]; if you prefer a DataFrame with a single row, use .tail(1).

    If the DataFrame is empty, attempting to access the last row using .iloc[-1] will result in an IndexError. It's advisable to check for an empty DataFrame before attempting to retrieve the last row.

    Another approach is to use the iloc property with the shape attribute. This method is less concise but might be useful in certain situations.

    You can use .iloc with a negative index to access rows from the end of a Pandas DataFrame. Negative indexing in Python allows you to access elements from the end of a sequence.

    Conclusion

    In this article, I have explained the usage of DataFrame.iloc[] and using this how we can get the last row of DataFrame in different ways. As well as I explained how to get the last row using tail() and other functions.

    Happy Learning !!

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

    Related Articles

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

    References