我正在尝试在 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.DataFrame(list,columns=['product'])df['number'] = list2这就是df的样子 product number0 Computer 15001 AA 2322 Monitor 3003 BB 23234 Printer 1505 BB 23236 Desk 2507 AA 23238 Printer 239 DD 3410 Desk 4511 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_add0 AA Y1 BB N2 CC N3 DD Y现在,如何向第一个数据帧 (df) 添加一列 ('to_add'),使其看起来有点像这样。在 excel 中,它是一个简单的 vlookup。我尝试了“合并”和“加入”功能,但它改变了我的 df 的顺序,我不希望顺序改变。有任何想法吗? product price to_add0 Computer 1500 1 AA 232 Y2 Monitor 300 3 BB 2323 N4 Printer 150 5 BB 2323 N6 Desk 250 7 AA 2323 Y8 Printer 23 9 DD 34 Y10 Desk 45 11 BB 56 N
1 回答

吃鸡游戏
TA贡献1829条经验 获得超7个赞
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
添加回答
举报
0/150
提交
取消