我想 vlookup dataframe.If 值存在于另一个 df 中,保持相同的值,否则将 #N/A 放入 pandas python
I want to vlookup dataframe.If value is present in another df ,keep same value,otherwise put #N/A in pandas python
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
需要输出
Car Available order
0 Jeep Jeep 10
1 Maruti Suzuki Maruti Suzuki 15
2 Audi #N/A 2
3 Kia Kia 5
我要vlookup.If df['Car']在df2中存在,保持不变value.and如果df2中不存在,在df中添加#N/A ['可用'].
需要输出
Car Available order
0 Jeep Jeep 10
1 Maruti Suzuki Maruti Suzuki 15
2 Audi #N/A 2
3 Kia Kia 5
使用 merge
和 indicator
参数:
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
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
需要输出
Car Available order
0 Jeep Jeep 10
1 Maruti Suzuki Maruti Suzuki 15
2 Audi #N/A 2
3 Kia Kia 5
我要vlookup.If df['Car']在df2中存在,保持不变value.and如果df2中不存在,在df中添加#N/A ['可用'].
需要输出
Car Available order
0 Jeep Jeep 10
1 Maruti Suzuki Maruti Suzuki 15
2 Audi #N/A 2
3 Kia Kia 5
使用 merge
和 indicator
参数:
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