Python 如何基于包含的字符串合并两个数据帧?

Python 如何基于包含的字符串合并两个数据帧?,python,pandas,merge,Python,Pandas,Merge,我有两个数据帧,我想根据包含的字符串在特定列上合并。这似乎是以下问题,但顺序不同: 将熊猫作为pd导入 df1=pd.DataFrame({'Amount':[10,20,30],'Description':['这是一个文本','这是另一个文本','这是一个重要的']}) df2=pd.DataFrame({'Text':['other','important'],'Category':['other Category','important Category']}) rhs=(df1.1说明)

我有两个数据帧,我想根据包含的字符串在特定列上合并。这似乎是以下问题,但顺序不同:

将熊猫作为pd导入
df1=pd.DataFrame({'Amount':[10,20,30],'Description':['这是一个文本','这是另一个文本','这是一个重要的']})
df2=pd.DataFrame({'Text':['other','important'],'Category':['other Category','important Category']})
rhs=(df1.1说明)
.apply(lambda x:df2[df2['Category']]如果str(x).lower()中的df2[df2['Text']]为无)
)
(pd.concat([df1.Amount,rhs],轴=1,忽略指数=True)
.rename(列={0:'金额',1:'类别'}))
我收到以下错误消息:

KeyError:[Index(['other','important'],dtype='object')]中没有一个在[columns]中

发生这种情况的原因是lambda表达式。对于df2[df2['Text']]部分,我尝试遍历包含类别的数据帧,但这不起作用。

假设df2是一个唯一的文本及其类别表,我想这可能会起作用。(假设dfs与您发布的相同)


你能分享一份所需输出的样本吗?
join_map = {row['Text']:row['Category'] for ind,row in df2.iterrows()}

df1['Category'] = df1['Description'].apply(lambda x: [val for key,val in join_map.items() if key in x][0] if [val for key,val in join_map.items() if key in x] else None)