猿问

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

我正在尝试在 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  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。我尝试了“合并”和“加入”功能,但它改变了我的 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


POPMUISE
浏览 82回答 1
微课
1回答

吃鸡游戏

pd.merge确实会完成这项工作,可能你没有正确使用它:pd.merge(df, df2, on="product", how="left")将返回:     product  number to_add0   Computer    1500    NaN1         AA     232      Y2    Monitor     300    NaN3         BB    2323      N4    Printer     150    NaN5         BB    2323      N6       Desk     250    NaN7         AA    2323      Y8    Printer      23    NaN9         DD      34      Y10      Desk      45    NaN11        BB      56      N
随时随地看视频慕课网APP

相关分类

Python
我要回答