How to merge / concatenate two DataFrames with pandas in python ?

April 14, 2020    /    Viewed: 470    /    Comments: 0    /    Edit


Basic examples of how to merge / concatenate two DataFrames with pandas in python:

Create two data frames

Let's create a first data frame called df1 with pandas

>>> import pandas as pd
>>> import numpy as np
>>> data = np.arange(1,13)
>>> data = data.reshape(3,4)
>>> df1 = pd.DataFrame(data=data,columns=['a','b','c','d'])
>>> df1
   a   b   c   d
0  1   2   3   4
1  5   6   7   8
2  9  10  11  12

Create a second data frame df2

>>> df2 = pd.DataFrame(data=[[13,14,15,16],[17,18,19,20]],columns=['a','b','c','d'])
>>> df2
    a   b   c   d
0  13  14  15  16
1  17  18  19  20

Concatenate on axis 0 (rows)

To append df2 to df1, a solution is to use the pandas function concat():

>>> df3 = pd.concat([df1,df2], ignore_index=True)
>>> df3
    a   b   c   d
0   1   2   3   4
1   5   6   7   8
2   9  10  11  12
3  13  14  15  16
4  17  18  19  20

Concatenate on axis 1 (columns)

Create a new data frame d2:

>>> df2 = pd.DataFrame(data=[[13,14],[15,16],[17,18]],columns=['e','f'])
>>> df2
    e   f
0  13  14
1  15  16
2  17  18

that can be added to df1 using the function concat() with option axis=1:

>>> df3 = pd.concat([df1,df2], axis=1)
>>> df3
   a   b   c   d   e   f
0  1   2   3   4  13  14
1  5   6   7   8  15  16
2  9  10  11  12  17  18

Go further

For more advance features see Merge, join, and concatenate sur pandas.pydata.org.

References

Links Site
Merge, join, and concatenate pandas doc
concat() pandas.pydata.org
Pandas : How to create an empty DataFrame and append rows & columns to it in python thispointer.com
Add one row to pandas DataFrame stackoverflow
Adding new column to existing DataFrame in Pandas stackoverflow


Card image cap
profile-image
Daidalos

Je développe le présent site avec le framework python Django. Je m'intéresse aussi actuellement dans le cadre de mon travail au machine learning pour plusieurs projets (voir par exemple) et toutes suggestions ou commentaires sont les bienvenus !