Adding rows to a Pandas DataFrame is a common operation in data manipulation and analysis. Pandas DataFrames are powerful data structures that allow you to store and manipulate tabular data, including adding new rows. In this article, we will explore the different methods to add rows to a Pandas DataFrame, including using the `loc` attribute, the `concat` function, and the `append` method.
Introduction to Pandas DataFrames

Pandas is a popular Python library used for data manipulation and analysis. It provides data structures and functions to efficiently handle structured data, including tabular data such as spreadsheets and SQL tables. A Pandas DataFrame is a two-dimensional table of data with columns of potentially different types. It is similar to an Excel spreadsheet or a table in a relational database.
Creating a Pandas DataFrame
To create a Pandas DataFrame, you can use the pd.DataFrame()
constructor and pass in a dictionary or a list of lists. Here is an example:
import pandas as pd
# Create a dictionary
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 24, 35, 32],
'Country': ['USA', 'UK', 'Australia', 'Germany']}
# Create a DataFrame
df = pd.DataFrame(data)
print(df)
Name | Age | Country |
---|---|---|
John | 28 | USA |
Anna | 24 | UK |
Peter | 35 | Australia |
Linda | 32 | Germany |

Adding Rows to a Pandas DataFrame

There are several ways to add rows to a Pandas DataFrame. Here are a few methods:
Method 1: Using the loc
Attribute
The loc
attribute is a label-based data selection method that allows you to access a group of rows and columns by label(s). You can use it to add a new row to a DataFrame by assigning a new row to a specific index.
# Add a new row to the DataFrame
df.loc[len(df)] = ['Phil', 36, 'Canada']
print(df)
Name | Age | Country |
---|---|---|
John | 28 | USA |
Anna | 24 | UK |
Peter | 35 | Australia |
Linda | 32 | Germany |
Phil | 36 | Canada |
Method 2: Using the concat
Function
The concat
function is used to concatenate two or more DataFrames. You can use it to add a new row to a DataFrame by creating a new DataFrame with the new row and then concatenating it with the original DataFrame.
# Create a new DataFrame with the new row
new_row = pd.DataFrame({'Name': ['Lucy'], 'Age': [29], 'Country': ['France']})
# Concatenate the new row with the original DataFrame
df = pd.concat([df, new_row], ignore_index=True)
print(df)
Name | Age | Country |
---|---|---|
John | 28 | USA |
Anna | 24 | UK |
Peter | 35 | Australia |
Linda | 32 | Germany |
Phil | 36 | Canada |
Lucy | 29 | France |
Method 3: Using the append
Method
The append
method is used to add a new row to a DataFrame. However, it is not as efficient as the other methods and is generally not recommended.
# Add a new row to the DataFrame
df = df._append({'Name': 'Mike', 'Age': 31, 'Country': 'Italy'}, ignore_index=True)
print(df)
Name | Age | Country |
---|---|---|
John | 28 | USA |
Anna | 24 | UK |
Peter | 35 | Australia |
Linda | 32 | Germany |
Phil | 36 | Canada |
Lucy | 29 | France |
Mike | 31 | Italy |
Key Points
- Adding rows to a Pandas DataFrame can be done using the `loc` attribute, the `concat` function, or the `append` method.
- The `loc` attribute is a label-based data selection method that allows you to access a group of rows and columns by label(s).
- The `concat` function is used to concatenate two or more DataFrames.
- The `append` method is used to add a new row to a DataFrame, but it is not as efficient as the other methods.
- When adding rows to a DataFrame, it's essential to ensure that the data is clean and consistent.
What is the most efficient way to add rows to a Pandas DataFrame?
+The most efficient way to add rows to a Pandas DataFrame is by using the loc
attribute or the concat
function.
Can I add multiple rows to a Pandas DataFrame at once?
+Yes, you can add multiple rows to a Pandas DataFrame at once by creating a new DataFrame with the new rows and then concatenating it with the original DataFrame.
What happens if I try to add a row with a different number of columns than the original DataFrame?
+If you try to add a row with a different number of columns than the original DataFrame, you will get an error. The number of columns in the new row must match the number of columns in the original DataFrame.