How to perform Drop Rows by Index in Pandas DataFrame? By using the Pandas drop function we can drop/delete the row or list of rows by index labels or position. Using the drop function we can also drop multiple columns by index.
In this article, I will explain how to drop rows by index labels or position using drop() function and using different approaches with examples.
drop()
method is used to drop rows or columns from DataFrame.- Use the
axis
param to specify what axis you would like to remove. By default axis = 0 meaning to remove rows. Use axis=1 or columns param to remove columns. - Use
inplace=True
to remove row/columninplace
meaning on existing DataFrame without creating a copy.
1. Quick Examples of Drop Rows by Index
If you are in a hurry, below are some quick examples of how to drop rows of DataFrame using index.
# Below are the quick examples
# Example 1: Use DataFrame.iloc[] to drop row
df1 = df.iloc[1:]
# Example 2: Drop rows from DataFrame using index
df1 = df.drop(index=df.iloc[3].name)
# Example 3: Drop the row using index labels
df1 = df.drop('r2')
# Example 4: Drop multiple rows using index labels
df1 = df.drop(['r1', 'r4', 'r5'])
# Example 5: Drop rows using index position
df1 = df.drop([df.index[1], df.index[2]])
# Example 6: Set inplace = True & Drop multiple rows
df.drop(['r1', 'r4', 'r5'], inplace = True)
# Example 7: Use DataFrame.iloc[] to drop row
df1 = df.iloc[1:]
# Example 8: Drop rows from DataFrame using index
df1 = df.drop(index=df.iloc[3].name)
Let’s create DataFrame using data from the Python dictionary and run the above examples to get the first row of DataFrame.
# Import pandas library
# Create DataFrame
import pandas as pd
technologies = {
'Courses':["Spark","PySpark","Python","pandas","Hadoop"],
'Fee' :[20000,25000,22000,24000,30000],
'Duration':['30day','40days','35days','60days','55days'],
'Discount':[1000,2300,2500,2000,3000]
}
index_labels=['r1','r2','r3','r4','r5']
df = pd.DataFrame(technologies, index = index_labels)
print(df)
# Outputs:
# Courses Fee Duration Discount
# r1 Spark 20000 30day 1000
# r2 PySpark 25000 40days 2300
# r3 Python 22000 35days 2500
# r4 pandas 24000 60days 2000
# r5 Hadoop 30000 55days 3000
2. Pandas Drop Row by Index label
We can drop the DataFrame row by index label using the drop()
function. For that we need to pass index label (which we want to drop from the DataFrame) into this function, it will drop the specified row from the DataFrame. Let’s see with an example.
# Drop the single row using index labels
df1 = df.drop('r2')
print(df1)
Yields below output.
# Output:
Courses Fee Duration Discount
r1 Spark 20000 30day 1000
r3 Python 22000 35days 2500
r4 pandas 24000 60days 2000
r5 Hadoop 30000 55days 3000
As we can see row with index 'r2'
has been dropped from the given DataFrame.
3. Drop Multiple Rows by Index Label
Moreover, using drop() function we can also drop the multiple rows by index labels from the DataFrame. For, that we need to pass a list of rows into this function, it will drop the specified rows and return the new DataFrame with the remaining rows. For example,
# Drop multiple rows using index labels
df1 = df.drop(['r1', 'r4', 'r5'])
print(df1)
Yields below output.
# Output:
Courses Fee Duration Discount
r2 PySpark 25000 40days 2300
r3 Python 22000 35days 2500
4. Set inplace = True
Set inplace
param as True
and pass it into drop function along with list of rows(which we want to drop from the DataFrame), it will update the existing DataFrame with the remaining rows rather than creating a new DataFrame. Let’s see what will happen,
# Set inplace = True & Drop multiple rows
df.drop(['r1', 'r4', 'r5'], inplace = True)
print(df)
# Output:
# Courses Fee Duration Discount
# r2 PySpark 25000 40days 2300
# r3 Python 22000 35days 2500
5. Pandas Drop Rows by Index Position
Alternatively, using the index position we can select the list of rows(which we want to drop from the DataFrame) from the DataFrame then, apply drop() function, which will drop the specified rows and return the new DataFrame with the remaining rows.
# Drop rows using index position
df1 = df.drop([df.index[1], df.index[2]])
print(df1)
# Output:
# Courses Fee Duration Discount
# r1 Spark 20000 30day 1000
# r4 pandas 24000 60days 2000
# r5 Hadoop 30000 55days 3000
6. Pandas Drop First Row using iloc[]
By using DataFrame.iloc[] attribute you can drop the rows by index. Actually, this function selects the particular portion of a given DataFrame based on its indices and ignores the rest of the portion. The particular portion may be a few rows or a few columns.
For example, use this syntax DataFrame.iloc[n:]
to select first n rows from the DataFrame and then assign it back to the original variable which ideally drops the first n rows from DataFrame. We can also get the first row of DataFrame and get the last row of DataFrame using the Pandas iloc[] property.
Let’s drop the first three rows by the index of the DataFrame using iloc[] attribute.
# Use DataFrame.iloc[] to drop rows
df1 = df.iloc[3:]
print(df1)
Yields below output.
# Output:
Courses Fee Duration Discount
r4 pandas 24000 60days 2000
r5 Hadoop 30000 55days 3000
6. Drop the Row using Index & Name property
Alternatively, we can drop the rows using name
property. For, that first we select the row using iloc[] property based on its index position then call name property, it will drop the specified row name using the name property.
# Drop rows from DataFrame using index
df1 = df.drop(index=df.iloc[3].name)
print(df1)
Yields below output.
# Output:
Courses Fee Duration Discount
r1 Spark 20000 30day 1000
r2 PySpark 25000 40days 2300
r3 Python 22000 35days 2500
r5 Hadoop 30000 55days 3000
6. Conclusion
In this article, you have learned how to drop the rows by index from Pandas DataFrame using index labels and index position with the help of DataFrame.iloc[]
, and DataFrame.drop()
functions with examples.
Happy Learning !!
Related Articles
- Drop First/Last N Columns From Pandas DataFrame
- Pandas Drop Last N Rows From DataFrame
- Delete/Drop First N Rows From Pandas DataFrame
- Sort Pandas DataFrame by Single Column
- Find Unique Values From Columns in Pandas
- Pandas Get Last row From DataFrame
- Get First row From Pandas DataFrame
- Get Unique Rows in Pandas DataFrame
- How to Get Row Numbers in Pandas DataFrame?
- Get First N Rows From Pandas DataFrame