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並不總是域 –