user9397182
user9397182

Reputation:

Adding columns from one data frame using Python

I am trying to add a column from one pandas data-frame to another pandas data-frame.

Here is data frame 1:

print (df.head())
ID   Name    Gender
1    John    Male 
2    Denver  0 
             0
3    Jeff    Male

Note: Both ID and Name are indexes

Here is the data frame 2:

print (df2.head())
ID    Appointed
1         R
2          
3         SL  

Note: ID is the index here.

I am trying to add the Appointed column from df2 to df1 based on the ID. I tried inserting the column and copying the column from df2 but the Appointed column keeps returning all NAN values. So far I had no luck any suggestions would be greatly appreciated.

Upvotes: 0

Views: 61

Answers (2)

MSS
MSS

Reputation: 3623

Reset index for both datafrmes and then create a column named 'Appointed' in df1 and assign the same column of df2 in it.

After resetting index,both datafrmes have index beginning from 0. When we assign the column, they automatically align according to index which is a property of pandas dataframe

df1.reset_index()
df2.reset_index()
df1['Appointed'] = df2['Appointed']

Upvotes: 0

sacuL
sacuL

Reputation: 51335

If I understand your problem correctly, you should get what you need using this:

df1.reset_index().merge(df2.reset_index(), left_on='ID', right_on='ID')

   ID    Name Gender Appointed
0   1    John   Male         R
1   2  Denver      0       NaN
2   3    Jeff   Male        SL

Or, as an alternative, as pointed out by Wen, you could use join:

df1.join(df2)

              Gender Appointed
ID Name                   
1  John     Male         R
2  Denver      0       NaN
0  NaN       NaN       NaN
3  Jeff     Male        SL

Upvotes: 1

Related Questions