为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用一些附加条件对我的数据帧执行 vlookup 等效操作

如何使用一些附加条件对我的数据帧执行 vlookup 等效操作

POPMUISE 2022-11-01 14:49:16
我正在尝试在 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


查看完整回答
反对 回复 2022-11-01
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号