1

I have 2 dataframes df1 and df2. df2 is shorter than df1. I am trying to copy an element pred from df2 into df1 if pedestrian in df2 exists in df1. I have looked at many posts but can't find one that addresses my problem.

Using map returns me a NaN everywhere in pred.

d = df2.set_index('pedestrian')['pred'].to_dict()
df1['pred'] = df2['pred'].map(d)

The program doesn't stop running if I use replace.

d = df2.set_index('pedestrian')['pred'].to_dict()
df1.replace(d)

Below is df1, df2 and what I would like the output to be.

df1

   pred   true            pedestrian     
0   -1     1    /data/jaad/image/0316/pedestrian/00...
1   -1     0    /data/jaad/image/0316/ped1/0001.png 
2   -1     0    /data/jaad/image/0316/ped2/0001.png

df2

      pred    true            pedestrian
0   0.628186    1   /data/jaad/image/0316/pedestrian/00...
1   0.171355    0   /data/jaad/image/0316/ped1/0001.png
2   0.628186    1   /data/jaad/image/0316/pedestrian/00...

output

   pred       true            pedestrian     
0   0.628186   1    /data/jaad/image/0316/pedestrian/00...
1   -1         0    /data/jaad/image/0316/ped1/0001.png 
2   -1         0    /data/jaad/image/0316/ped2/0001.png
Kong
  • 2,202
  • 8
  • 28
  • 56

0 Answers0