我有两个数据帧,我想将df1连接到df2,其中df1包含一个url,df2包含一个url列表。你知道吗
df1和df2的形状不同
示例:
df1 = pd.DataFrame({'url': ['http://www.example.jp/pro/sanada16']})
df2 = pd.DataFrame({'urls': ['[https://www.example.jp/pro/minoya, http://www.example.jp/pro/tokyo_kankan, http://www.example.jp/pro/briansawazakiphotography, http://www.example.jp/pro/r_masuda, http://www.example.jp/pro/sanada16, ......]']})
我希望datafrmes加入的条件是df1.url中的http://www.example.jp/pro/sanada16存在于df2.url中。你知道吗
我考虑过将列表列到列,但是在df2.url中url的数量不是唯一的。你知道吗
我尝试将与df2.url匹配的df1.url子字符串添加到一个新列,以便可以加入新列,但无法使其工作:
df2['match'] = df2['urls'].apply(lambda x: x if x in df1['url'])
预期产量:
new_df = pd.DataFrame({'url': ['http://www.example.jp/pro/sanada16'], 'urls': ['[https://www.example.jp/pro/minoya, http://www.example.jp/pro/tokyo_kankan, http://www.example.jp/pro/briansawazakiphotography, http://www.example.jp/pro/r_masuda, http://www.example.jp/pro/sanada16, ......]']})
使用postgresql,我可以:
SELECT
b.url
,a.urls
FROM df2 a
join df1 b
on position(b.url in a.urls)>0
如果我理解正确的话,这里有一个方法。您可以遍历要搜索的模式,然后使用
df.at
存储匹配项。你知道吗提供:
感谢您按要求更新您的问题。你知道吗
相关问题 更多 >
编程相关推荐