Open In App

How to add one row in existing Pandas DataFrame?

Last Updated : 03 Apr, 2025
Suggest changes
Share
Like Article
Like
Report

Adding rows to a Pandas DataFrame is a common task in data manipulation and can be achieved using methods like loc[], and concat().

Method 1. Using loc[] - By Specifying its Index and Values

The loc[] method is ideal for directly modifying an existing DataFrame, making it more memory-efficient compared to append() which is now-deprecated. This approach is particularly useful when you know the index where the row should be inserted.

Example : Adding One Row in an existing Pandas DataFrame using loc

Python
import pandas as pd data = {"Name": ["Alice", "Bob"], "Age": [25, 30]} df = pd.DataFrame(data) # Add a new row using loc[] df.loc[len(df)] = ["Charlie", 35] print(df) 

Output
 Name Age 0 Alice 25 1 Bob 30 2 Charlie 35 

Method 2. Adding Row Using concat()

The concat() function merges two DataFrames along rows (or columns). To add a single row, create it as a DataFrame and concatenate it with the original. Ideal for adding multiple rows or when working with external data sources. It avoids modifying the original DataFrame directly.

Python
import pandas as pd data = {"Name": ["Alice", "Bob"], "Age": [25, 30]} df = pd.DataFrame(data) new_row = pd.DataFrame({"Name": ["Eve"], "Age": [28]}) df = pd.concat([df, new_row], ignore_index=True) print(df) 

Output
 Name Age 0 Alice 25 1 Bob 30 2 Eve 28 

Additional Examples of Adding Rows to Pandas DataFrames

Example 1: Adding a Row with Default Values

When you need to add a placeholder row with default values for further updates or processing.

Python
import pandas as pd data = {"Name": ["Alice", "Bob"], "Age": [25, 30]} df = pd.DataFrame(data) # Add a placeholder row df.loc[len(df)] = ["Unknown", 0] print(df) 

Output
 Name Age 0 Alice 25 1 Bob 30 2 Unknown 0 

Example 2: Adding Multiple Rows with concat()

Useful when merging datasets from different sources, such as combining population data for different cities, ensuring scalability for multiple rows and avoiding direct modification of the original DataFrame.

Python
import pandas as pd data = {"Name": ["Alice", "Bob"], "Age": [25, 30]} df = pd.DataFrame(data) # New rows as a DataFrame new_rows = pd.DataFrame({"Name": ["Charlie", "Diana"], "Age": [35, 28]}) df = pd.concat([df, new_rows], ignore_index=True) print(df) 

Output
 Name Age 0 Alice 25 1 Bob 30 2 Charlie 35 3 Diana 28 

Example 3: Adding a Row with a Dictionary

Adding a row dynamically with values generated programmatically.

Python
import pandas as pd data = {"Product": ["A", "B"], "Price": [100, 150]} df = pd.DataFrame(data) # Add a dynamically generated row new_row = {"Product": "C", "Price": 200} df.loc[len(df)] = new_row print(df) 

Output
 Product Price 0 A 100 1 B 150 2 C 200 

Example 4: Adding Rows Conditionally

Adding rows only if certain conditions are met.

Python
import pandas as pd data = {"Employee": ["Alice", "Bob"], "Salary": [5000, 6000]} df = pd.DataFrame(data) # Add a row only if the salary is below a threshold if df["Salary"].max() < 7000: df.loc[len(df)] = ["Charlie", 7000] print(df) 

Output
 Employee Salary 0 Alice 5000 1 Bob 6000 2 Charlie 7000 

Example 5: Adding Rows Using iloc and Index Reassignment

Adding rows at a specific position in the DataFrame.

Python
import pandas as pd data = {"City": ["NY", "LA"], "Population": [8_399_000, 3_990_000]} df = pd.DataFrame(data) # Insert a row in the middle df.loc[1.5] = ["Chicago", 2_705_000] # Add at a floating-point index df = df.sort_index().reset_index(drop=True) print(df) 

Output
 City Population 0 NY 8399000 1 LA 3990000 2 Chicago 2705000 

Example 6: Adding Rows with Missing Columns

Handling scenarios where the new row has fewer columns than the original DataFrame.

Python
import pandas as pd data = {"Name": ["Alice", "Bob"], "Age": [25, 30], "City": ["NY", "LA"]} df = pd.DataFrame(data) # Add a row missing one column new_row = {"Name": "Charlie", "Age": 35} # No "City" df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True) print(df) 

Output
 Name Age City 0 Alice 25 NY 1 Bob 30 LA 2 Charlie 35 NaN 

Next Article

Similar Reads