Pandas:在某些列中查找字符串中的子字符串

时间:2017-01-19 13:26:46

标签: python pandas

我有一个2数据帧,在第一列,我应该找到一些信息 第二列,我应该在第一个数据框和列中找到的内容,如果第一列中的字符串包含,我应该添加什么。

DF1:

id    url  
111   vk.com/audio
222   twitter.com/chats

DF2:

url   Maincategory   Subcategory
vk.com   Social Network    entertainment
twitter.com   Social Network   entertainment

如果url列匹配,我会使用

df1['Main Category'] = df1.url.map(df2.set_index('url')['Maincategory'])

但它找不到子字符串。 我用它

mapping = dict(df2.set_index('url')['Maincategory'])
def map_to_substring(x):
    for key in mapping.keys():
        if key in x:
            return mapping[key]
    return 'None'

但如果df太多,则需要花费太多时间。 我怎样才能改进这种方法来更快地完成它?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚你在问什么,但你应该使用pandas {{1}}方法http://pandas.pydata.org/pandas-docs/stable/text.html

作为一般规则,您可以遍历第一个数据帧中的每个列,并在第二个数据帧中搜索匹配项。没有比我想象的更快的解决方案