How to use rbind in Python (Equivalent to R)

In Python, the equivalent to using the rbind function in R is to use the pandas.concat() function. This function allows you to concatenate two dataframes or series along the row axis. To do this, you must pass the two datasets into the concat() function, specify the axis of concatenation (axis = 0), and add an optional join argument. This will create a new dataframe with the data from both the datasets combined.


The rbind function in R, short for row-bind, can be used to combine data frames together by their rows.

We can use the function from pandas to perform the equivalent function in Python:

df3 = pd.concat([df1, df2])

The following examples shows how to use this function in practice.

Example 1: Use rbind in Python with Equal Columns

Suppose we have the following two pandas DataFrames:

import pandas as pd

#define DataFrames
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E'],
                    'points': [99, 91, 104, 88, 108]})

print(df1)

  team  points
0    A      99
1    B      91
2    C     104
3    D      88
4    E     108

df2 = pd.DataFrame({'assists': ['F', 'G', 'H', 'I', 'J'],
                    'rebounds': [91, 88, 85, 87, 95]})

print(df2)

  team  points
0    F      91
1    G      88
2    H      85
3    I      87
4    J      95

We can use the concat() function to quickly bind these two DataFrames together by their rows:

#row-bind two DataFrames
df3 = pd.concat([df1, df2])

#view resulting DataFrame
df3

	team	points
0	A	99
1	B	91
2	C	104
3	D	88
4	E	108
0	F	91
1	G	88
2	H	85
3	I	87
4	J	95

Note that we can also use reset_index() to reset the index values of the new DataFrame:

#row-bind two DataFrames and reset index values
df3 = pd.concat([df1, df2]).reset_index(drop=True)

#view resulting DataFrame
df3

	team	points
0	A	99
1	B	91
2	C	104
3	D	88
4	E	108
5	F	91
6	G	88
7	H	85
8	I	87
9	J	95

Example 2: Use rbind in Python with Unequal Columns

We can also use the concat() function to row-bind two DataFrames together that have an unequal number of columns and any missing values will simply be filled with NaN:

import pandas as pd

#define DataFrames
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E'],
                    'points': [99, 91, 104, 88, 108]})

df2 = pd.DataFrame({'team': ['F', 'G', 'H', 'I', 'J'],
                    'points': [91, 88, 85, 87, 95],
                    'rebounds': [24, 27, 27, 30, 35]})

#row-bind two DataFrames
df3 = pd.concat([df1, df2]).reset_index(drop=True)

#view resulting DataFrame
df3

	team	points	rebounds
0	A	99	NaN
1	B	91	NaN
2	C	104	NaN
3	D	88	NaN
4	E	108	NaN
5	F	91	24.0
6	G	88	27.0
7	H	85	27.0
8	I	87	30.0
9	J	95	35.0

The following tutorials explain how to perform other common functions in Python:

x