• Post author:
  • Post category:Pandas
  • Post last modified:April 20, 2024
  • Reading time:15 mins read
You are currently viewing Pandas Drop Last Column From DataFrame

To drop the last column from a DataFrame using Pandas in Python, you can use the iloc[] method to select all rows and all columns except the last one. Additionally, you have several other options such as the drop(), pop(), and del methods. In this article, I will explain how to drop the last column from Pandas DataFrame.

Advertisements

Key Points –

  • Use the iloc method with slicing (iloc[:, :-1]) to drop the last column from a DataFrame in Pandas.
  • The drop() function can be utilized to remove columns by specifying the axis=1 parameter.
  • Employing pop() allows removing and returning the last column of the DataFrame, altering the original DataFrame.
  • Utilize the del keyword followed by the DataFrame column name to delete the column in place.
  • Always consider the necessity of modifying the DataFrame in place (inplace=True) versus creating a new DataFrame when performing column drops.

Quick Examples of Drop Last Column From DataFrame

If you are in a hurry, below are some quick examples of how to drop the last column from DataFrame.


# Quick examples of drop last column from dataframe

# Example 1: Drop last column of dataframe 
# Using iloc[]
df2 = df.iloc[: , :-1]

# Example 2: By using iloc[] 
# To select all columns
# Except the last column
df2 = df[df.columns[:-1]]

# Example 3: Drop last column of dataframe using drop()
df.drop(columns=df.columns[-1],  axis=1,  inplace=True)

# Example 4: Using drop() function to delete last column
df.drop(df.columns[len(df.columns)-1], axis=1, inplace=True)

# Example 5: Using DataFrame.drop() function 
# To drop last column
df2 = df.drop(df.columns[-1],axis=1)

# Example 6: Drop last column of dataframe 
# Using pop()
df.pop(df.columns[-1])

# Example 7: Use del keywords
del df[df.columns[-1]] 

To run some examples of dropping the last column from DataFrame. Now, Let’s create Pandas DataFrame using data from a dictionary.


# Create DataFrame
import pandas as pd
import numpy as np
technologies= ({
    'Courses':["Spark","PySpark","Hadoop","Pandas"],
    'Fee': [22000,25000,30000,35000],
    'Duration':['30days','50days','40days','35days'],
    'Discount':[1000,2000,2500,1500]
              })
index_labels=['r1','r2','r3','r4']
df = pd.DataFrame(technologies,index=index_labels)
print("Create DataFrame:\n",df)

Yields below output.

pandas drop last column

Pandas Drop Last Column using iloc[]

You can drop the last column of a Pandas DataFrame using iloc[] by specifying all rows (:) and all columns except the last one. For instance, using df.iloc[:,:-1] allows you to select all columns except the last one in a DataFrame. When you assign this selection back to the original variable, you effectively drop the last column from the DataFrame.


# Drop last column of dataframe 
# Using iloc[]
df2 = df.iloc[:, :-1]
print("Dropping last column:\n", df2)

# By using iloc[] to select all columns
# Except the last column
df2 = df[df.columns[:-1]]
print("Dropping last column:\n", df2)

In the above example, In the iloc[:, :-1] part, : selects all rows, and :-1 selects all columns up to (but not including) the last one. This effectively drops the last column from the DataFrame. This example yields the below output.

pandas drop last column

Related: In Pandas, you can also drop the first column from DataFrame.

Drop Last Column of DataFrame Using drop()

Alternatively, to drop the last column of a DataFrame using the drop() method, you can specify the column label of the last column along with axis=1.


# Using DataFrame.drop() function 
# To drop last column
df2 = df.drop(df.columns[-1],axis=1)
print("Dropping last column:\n", df)

# Drop last column of dataframe using drop()
df.drop(columns=df.columns[-1],  axis=1,  inplace=True)
print("Dropping last column:\n", df)

# Using drop() function to delete last column
df.drop(df.columns[len(df.columns)-1], axis=1, inplace=True)
print("Dropping last column:\n", df)

In the above example, df.columns[-1] gets the label of the last column, and axis=1 specifies that we want to drop a column. The resulting DataFrame (df) will have the last column removed. df.columns[-1] returns Duration which is the last column from our DataFrame.

Drop Last Column using pop()

Utilize the pop() function to remove the last column of the DataFrame and return the deleted column as a Series. To specifically select the last column of a DataFrame, you can use df.columns[-1], which selects all columns except the last one.


# Drop last column of dataframe 
# Using pop()
df.pop(df.columns[-1])
print("Dropping last column:\n", df)

In the above example, df.columns[-1] gets the label of the last column, and df.pop() removes and returns that column. The resulting DataFrame (df) will no longer contain the last column.

Use del Keyword to Drop Last Column of Pandas DataFrame

Similarly, you can use the del keyword to remove the last column from a Pandas DataFrame.


# Use del keywords
del df[df.columns[-1]] 
print(df)

In the above examples, df.columns[-1] gets the label of the last column, and del df[df.columns[-1]] removes that column from the DataFrame. The resulting DataFrame (df) will no longer contain the last column. Note that this modifies the original DataFrame in place.

Complete Example For


import pandas as pd
import numpy as np
technologies= ({
    'Courses':["Spark","PySpark","Hadoop","Pandas"],
    'Fee': [22000,25000,30000,35000],
    'Duration':['30days','50days','40days','35days'],
    'Discount':[1000,2000,2500,1500]
              })
index_labels=['r1','r2','r3','r4']
df = pd.DataFrame(technologies,index=index_labels)
print(df)

# Drop last column of dataframe using iloc[]
df2 = df.iloc[: , :-1]
print(df2)

# By using iloc[] to select all columns
# Except the last column
df2 = df[df.columns[:-1]]
print(df2)

# Drop last column of dataframe using drop()
df.drop(columns=df.columns[-1],  axis=1,  inplace=True)
print(df)

# Using drop() function to delete last column
df.drop(df.columns[len(df.columns)-1], axis=1, inplace=True)
print(df)

# Using DataFrame.drop() function to drop last column
df2 = df.drop(df.columns[-1],axis=1)
print(df2)

# Drop last column of dataframe using pop()
df.pop(df.columns[-1])
print(df)

# Use del keywords
del df[df.columns[-1]] 
print(df)

FAQ on Drop Last Column From DataFrame

How can I drop the last column from a Pandas DataFrame?

You can drop the last column from a Pandas DataFrame using various methods, such as iloc[], drop(), pop(), or the del keyword.

Does dropping the last column modify the original DataFrame?

Dropping the last column using any of the mentioned methods modifies the original DataFrame in place. If you want to keep the original DataFrame unchanged, you can assign the result to a new variable.

Are there any differences in performance among these methods?

Performance differences are generally negligible for small to medium-sized DataFrames. However, for very large DataFrames, there might be slight variations. It’s recommended to choose the method that fits your specific use case and coding style.

How can I drop multiple columns at once?

You can drop multiple columns at once using any of the mentioned methods. For example, using iloc[]

Is there a way to drop columns without modifying the original DataFrame?

If you want to drop columns from a DataFrame without modifying the original DataFrame, you should create a new DataFrame with the desired subset of columns. The original DataFrame remains unchanged.

Conclusion

In this article, I have explained how to drop the last column from Pandas DataFrame by using iloc[], drop(), pop(), and del Keyword with examples.

Happy Learning !!

Related Articles

References

Malli

Malli is an experienced technical writer with a passion for translating complex Python concepts into clear, concise, and user-friendly articles. Over the years, he has written hundreds of articles in Pandas, NumPy, Python, and takes pride in ability to bridge the gap between technical experts and end-users.