在Python Pandas中复制Excel的VLOOKUP

时间:2017-02-02 18:28:32

标签: python pandas

非常感谢以下问题的一些帮助。我打算使用Pandas库来解决这个问题,如果你能解释如何在可能的情况下使用Pandas来解决这个问题,我将不胜感激。

我想采用以下excel文件:

Before

  • 1)转换之前的'将文件存入熊猫数据框
  • 2)在' Site'中寻找文字。柱。此文字出现在'域中的字符串中的位置。列,返回'所有者'列下的输出'。
  • 3)结果应该看起来像' After'文件。我想将其转换回CSV格式。

After

所以基本上这类似于excel vlookup练习,除了它不是我们在' Site'之间寻找的完全匹配。和'域名'列。

我已经在Excel中尝试了这一点,但我正在查看超过100,000行,并将它们与超过1000个站点进行比较,这些站点崩溃了。

我尝试将查找列表存储在与我们要使用'所有者'进行分类的域列表相同的文件中。如果有更好的方法,例如将查找列表完全存储在一个单独的数据框中,那就没问题了。

提前感谢您的帮助,我真的很感激。

科林

1 个答案:

答案 0 :(得分:0)

我认为OP的问题与评论中链接的解决方案有所不同,这些解决方案要么处理精确查找(map),要么在数据帧之间进行查找。这里有一个数据帧和一个要查找的部分匹配。

import pandas as pd
import numpy as np

df = pd.ExcelFile('data.xlsx').parse(0)
df = df.astype(str)
df['Test'] = df.apply(lambda x: x['Site'] in x['Domain'],axis=1)
df['Output'] = np.where(df['Test']==True, df['Owner'], '')
df

lambda允许重复跨轴应用的in测试,以在Test中返回布尔值。这样就可以查找Owner并放入Output