Python 在一些附加条件下,如何在数据帧上执行vlookup等效操作
您好,我正在尝试在python上运行查找等效函数,但在尝试了合并和加入之后,我还没有达到目的 所以我的第一个df是这个Python 在一些附加条件下,如何在数据帧上执行vlookup等效操作,python,dataframe,join,merge,Python,Dataframe,Join,Merge,您好,我正在尝试在python上运行查找等效函数,但在尝试了合并和加入之后,我还没有达到目的 所以我的第一个df是这个 list = ['Computer', 'AA', 'Monitor', 'BB', 'Printer', 'BB', 'Desk', 'AA', 'Printer', 'DD', 'Desk', 'BB'] list2 = [1500, 232, 300, 2323, 150, 2323, 250, 2323, 23, 34, 45, 56] df = pd.DataFram
list = ['Computer', 'AA', 'Monitor', 'BB', 'Printer', 'BB', 'Desk', 'AA', 'Printer', 'DD', 'Desk', 'BB']
list2 = [1500, 232, 300, 2323, 150, 2323, 250, 2323, 23, 34, 45, 56]
df = pd.DataFrame(list,columns=['product'])
df['number'] = list2
这就是df的外观
product number
0 Computer 1500
1 AA 232
2 Monitor 300
3 BB 2323
4 Printer 150
5 BB 2323
6 Desk 250
7 AA 2323
8 Printer 23
9 DD 34
10 Desk 45
11 BB 56
这是第二个数据帧
list_n = ['AA','BB','CC','DD']
list_n2 = ['Y','N','N','Y']
df2 = pd.DataFrame(list_n,columns=['product'])
df2['to_add'] = list_n2
这就是df2的样子
product to_add
0 AA Y
1 BB N
2 CC N
3 DD Y
现在,我如何向第一个数据帧(df)添加一列('to_add'),使其看起来有点像这样。在excel中,它是一个简单的vlookup。我尝试了“merge”和“join”函数,但它改变了我的df的顺序,我不想改变顺序。有什么想法吗
product price to_add
0 Computer 1500
1 AA 232 Y
2 Monitor 300
3 BB 2323 N
4 Printer 150
5 BB 2323 N
6 Desk 250
7 AA 2323 Y
8 Printer 23
9 DD 34 Y
10 Desk 45
11 BB 56 N
pd.merge
确实可以完成这项工作,可能您没有正确使用它:
pd.merge(df, df2, on="product", how="left")
将返回:
product number to_add
0 Computer 1500 NaN
1 AA 232 Y
2 Monitor 300 NaN
3 BB 2323 N
4 Printer 150 NaN
5 BB 2323 N
6 Desk 250 NaN
7 AA 2323 Y
8 Printer 23 NaN
9 DD 34 Y
10 Desk 45 NaN
11 BB 56 N
这对我来说太好了!再次感谢。我对那件事有个追问