首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vlookup擅长熊猫蟒蛇

vlookup擅长熊猫蟒蛇
EN

Stack Overflow用户
提问于 2022-08-29 04:19:06
回答 1查看 38关注 0票数 0

在excel中,如果我们想在新列上使用VLOOKUP,我们需要定义我们需要的查找值、表数组和索引列号,然后这个值填充我们需要的列。如果我们想对python做同样的事情,那么如何执行呢?

例如,第一和第二数据

代码语言:javascript
复制
data01 = pd.DataFrame({'Code Id':['AA-103', 'BB-203', 'CC-303', 'DD-403'], 'Area':['AA', 'BB', 'CC', 'DD'], 'Sub-Area':['AA', 'BB', 'CC-1', 'DD-3']})
data02 = pd.DataFrame({'Code Id':['AA-103', 'BB-203', 'CC-505', 'FF-606'], 'Area':['AA', 'BB', 'EE', 'FF']})

然后预期的输出就像这样

代码语言:javascript
复制
data03 = pd.DataFrame({'Code Id':['AA-103', 'BB-203', 'EE-505', 'FF-606'], 'Area':['AA', 'BB', 'EE', 'FF'], 'Sub-Area':['AA', 'BB', 'Na', 'Na']})

因此,这就像我们在第二个基于新合同的数据中添加了新的列,而不是基于它们都创建一个新的dataframe。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-29 06:38:39

这样做的方法之一是将与左联接一起使用:

Left join:它提供来自第一个dataframe的所有行,并将匹配第二个dataframe中的行。第二个dataframe中没有找到/匹配的每一行都将被NaN替换(将将#N/A替换)。

代码语言:javascript
复制
data03 = data02.merge(data01[['Code Id', 'Sub-Area']], on='Code Id', how='left')

>>> print(data03)

注意:您的data02__中有一个小错误,第三个Code Id必须等于“EE-505”,而不是“CC-505”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73524082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档