在excel中,如果我们想在新列上使用VLOOKUP,我们需要定义我们需要的查找值、表数组和索引列号,然后这个值填充我们需要的列。如果我们想对python做同样的事情,那么如何执行呢?
例如,第一和第二数据
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']})然后预期的输出就像这样
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。有什么想法吗?
发布于 2022-08-29 06:38:39
这样做的方法之一是将与左联接一起使用:
Left join:它提供来自第一个dataframe的所有行,并将匹配第二个dataframe中的行。第二个dataframe中没有找到/匹配的每一行都将被NaN替换(将将#N/A替换)。
data03 = data02.merge(data01[['Code Id', 'Sub-Area']], on='Code Id', how='left')>>> print(data03)

注意:您的data02__中有一个小错误,第三个Code Id必须等于“EE-505”,而不是“CC-505”。
https://stackoverflow.com/questions/73524082
复制相似问题