我有一个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太多,则需要花费太多时间。 我怎样才能改进这种方法来更快地完成它?
答案 0 :(得分:0)
目前尚不清楚你在问什么,但你应该使用pandas {{1}}方法http://pandas.pydata.org/pandas-docs/stable/text.html
作为一般规则,您可以遍历第一个数据帧中的每个列,并在第二个数据帧中搜索匹配项。没有比我想象的更快的解决方案