0
import pandas as pd
data = {'Car':['Jeep', 'Maruti Suzuki', 'Audi','Kia'],
        'order':[10,15,2,5]}
        # Create DataFrame
df = pd.DataFrame(data)
print (df)
output:
             Car  order
0           Jeep     10
1  Maruti Suzuki     15
2           Audi      2
3            Kia      5
data = {'Car':['Jeep', 'Maruti Suzuki','Kia'],
        'City':['M','P',"D"]
        }
df2 = pd.DataFrame(data)
print (df2)
            Car City
0           Jeep    M
1  Maruti Suzuki    P
2            Kia    D

Required output

           Car          Available     order
0           Jeep           Jeep     10
1  Maruti Suzuki  Maruti Suzuki     15
2           Audi           #N/A      2
3            Kia            Kia      5

I want to vlookup.If df['Car'] is present in df2,Keep as the same value.and if not present in df2,add #N/A in df[' Available'].

Required output

             Car      Available  order
0           Jeep           Jeep     10
1  Maruti Suzuki  Maruti Suzuki     15
2           Audi           #N/A      2
3            Kia            Kia      5
ifly6
  • 5,003
  • 2
  • 24
  • 47
San
  • 39
  • 6

1 Answers1

0

Use merge with indicator parameter:

out = pd.merge(df, df2['Car'], on='Car', how='left', indicator=True)
out['Available'] = np.where(out['_merge'] == 'both', out['Car'], '#N/A')
# out = out.drop(columns='_merge')
>>> out[['Car', 'Available', 'order']]
             Car      Available  order
0           Jeep           Jeep     10
1  Maruti Suzuki  Maruti Suzuki     15
2           Audi           #N/A      2
3            Kia            Kia      5
Corralien
  • 109,409
  • 8
  • 28
  • 52