Appending a row to DataFrame

This tutorial has described various techniques to append rows to existing DataFrame with examples.

In [1]:
import pandas as pd
d = {'one' : [10,20,30],'two' : ['a','b','c']}
df = pd.DataFrame(d) 
df
Out[1]:
   one two
0   10   a
1   20   b
2   30   c

Pandas’ .loc method used to append the data to DataFrame.

Appending a row by given list –

In [2]: df.loc[3] = [40,'d']    # add the list value at specified index 3
Out[2]:
   one two
0   10   a
1   20   b
2   30   c
3   40   d

Appending a row by given dictionary – 

In [3]: df.loc[4] = {'one':50,'two':'e'}   # add the dict value at specified index 4
Out[3]:
   one two
0   10   a
1   20   b
2   30   c
3   40   d
4   50   e

Appending a row by single column value – 

You can specify the value of a specific column while appending the new row. The NaN value is assigned to the non-specified column automatically.

In [4]: df.loc[5,'one'] = 60  # add value 60 to the column 'one' at specified index 5
Out[4]:
    one  two
0  10.0    a
1  20.0    b
2  30.0    c
3  40.0    d
4  50.0    e
5  60.0  NaN

Note: If you use an existing index in df.loc[], this will overwrite the value in that specified row.

In [5]: df.loc[2] = [200,'z']  # This will overwrite the column values at index row 2.
Out[5]:
     one  two
0   10.0    a
1   20.0    b
2  200.0    z
3   40.0    d
4   50.0    e
5   60.0  NaN

In [6]: df.loc[1,'two'] = 'Y'  #This will overwrite column value 'two' at index row 1
Out[6]:
     one  two
0   10.0    a
1   20.0    Y
2  200.0    z
3   40.0    d
4   50.0    e
5   60.0  NaN

Appending DataFrame to another DataFrame –

Pandas’ append() function used to append one DataFrame to another DataFrame. The append function doesn’t change any of the original DataFrames, it will return a new DataFrame by appending two DataFrame.

# Let's define a new DataFrame, which will be inserted to DataFrame df
In [7]: temp_df = pd.DataFrame([[4.0,5]],columns=['one','two'])
In [8]: temp_df
Out[8]:
   one  two
0  4.0    5

In [9]: df2 = df.append(temp_df)  # temp_df DataFrame is appending to DataFrame df
In [10]: df2
Out[10]:  
     one  two
0   10.0    a
1   20.0    Y
2  200.0    z
3   40.0    d
4   50.0    e
5   60.0  NaN
0    4.0    5
Here, you can observe that the resultant DataFrame df2 has the duplicate index values. You can avoid duplicate index by specifying the parameter ignore_index=True in the append method.
In [11]: df2 = df.append(temp_df,ignore_index=True)    # avoid duplicate index
In [12]: df2
Out[12]:  
     one  two
0   10.0    a
1   20.0    Y
2  200.0    z
3   40.0    d
4   50.0    e
5   60.0  NaN
6    4.0    5

Note – While appending DataFrames, it is not necessary to have the same set of columns to both DataFrame.

# Let's define DataFrame df_A
In [13]: df_A = pd.DataFrame({'A' : [10,20],'B' : ['a','b']})     
In [14]: df_A
Out[14]:
    A  B
0  10  a
1  20  b

# Let's define DataFrame df_B
In [15]: df_B = pd.DataFrame({'B':['x','y'],'C':[12,14]})
In [16]: df_B
Out[16]:
   B   C
0  x  12
1  y  14

# Append DataFrame df_B to df_A
In [17]: df3 = df_A.append(df_B)
In [18]: df3
Out[18]:
      A  B     C
0  10.0  a   NaN
1  20.0  b   NaN
0   NaN  x  12.0
1   NaN  y  14.0

.     .     .

Leave a Reply

Your email address will not be published. Required fields are marked *

Python Pandas Tutorials