0
我有一个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实在是太多了,它需要太多的时间。 我该如何改进这种方法来更快地做到这一点?
如果您与域名匹配,可能值得使用'urlparse'将数据列添加到您的数据框。你可以在'netloc'上做精确匹配。当然,这对任意的子串都不起作用,但它可能适用于你的情况。参考:https://docs.python.org/2/library/urlparse.html – Mikk
@Mikk并不总是域 –