9

I have two dataframes:

df1 : here index is ip

            accountname      name
ip
192.168.1.1        aaaa  john doe
192.168.1.2        bbbb  jane doe

df2 : index is accountname

             gsm
accountname
aaaa         850
bbbb         860
cccc         870

I have to combine two dataframe and add gsm column to df1.

            ip accountname      name  gsm
0  192.168.1.1        aaaa  john doe  850
1  192.168.1.2        bbbb  jane doe  860

These dataframes has different indexes and I couldnt reach right data. any advice would be appreciated.

Zero
  • 74,117
  • 18
  • 147
  • 154
jojo
  • 137
  • 1
  • 3
  • 12

2 Answers2

8

You could use merge with index as well.

In [2313]: df1.merge(df2, left_on='accountname', right_index=True).reset_index()
Out[2313]:
            ip accountname      name  gsm
0  192.168.1.1        aaaa  john doe  850
1  192.168.1.2        bbbb  jane doe  860
Zero
  • 74,117
  • 18
  • 147
  • 154
3

Use join:

df = df1.join(df2, on='accountname', how='inner').reset_index()
print (df)
            ip accountname      name  gsm
0  192.168.1.1        aaaa  john doe  850
1  192.168.1.2        bbbb  jane doe  860
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252