Python ProgrammingPython Programming

How to insert a row at an arbitrary position in a DataFrame using pandas?

Insert a row at an arbitrary position:

import pandas as pd

df = pd.DataFrame(columns=['Name', 'Age'])

df.loc[1, 'Name'] = 'Rocky'
df.loc[1, 'Age'] = 21

df.loc[2, 'Name'] = 'Sunny'
df.loc[2, 'Age'] = 22

df.loc[3, 'Name'] = 'Mark'
df.loc[3, 'Age'] = 25

df.loc[4, 'Name'] = 'Taylor'
df.loc[4, 'Age'] = 28

print("\n------------ BEFORE ----------------\n")
print(df)

line = pd.DataFrame({"Name": "Jack", "Age": 24}, index=[2.5])
df = df.append(line, ignore_index=False)
df = df.sort_index().reset_index(drop=True)

df = df.reindex(['Name', 'Age'], axis=1)
print("\n------------ AFTER ----------------\n")
print(df)




C:\pandas>python example35.py
 
------------ BEFORE ----------------
 
     Name Age
1   Rocky  21
2   Sunny  22
3    Mark  25
4  Taylor  28
 
------------ AFTER ----------------
 
     Name Age
0   Rocky  21
1   Sunny  22
2    Jack  24
3    Mark  25
4  Taylor  28
 
C:\pandas>pep8 example35.py
 
C:\pandas>