Python 有没有一种方法可以基于列中的相似元素连接两个数据帧?

Python 有没有一种方法可以基于列中的相似元素连接两个数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据框,其中的列由新闻标题、日期和从标题中提取的关键字列表(实际上是NERs)组成。我想根据关键字的相似性连接这两个表。我的意思不是完全相似,而是相似的意思,比如华盛顿特区=美国首都。我有什么办法可以做到这一点吗? 我试图在下面的例子中展示我想要的东西 例如: table 1 Header1 Date NER 481247 Some text here 01.01.2021 [president, Washington D.C.]

我有两个数据框,其中的列由新闻标题、日期和从标题中提取的关键字列表(实际上是NERs)组成。我想根据关键字的相似性连接这两个表。我的意思不是完全相似,而是相似的意思,比如华盛顿特区=美国首都。我有什么办法可以做到这一点吗? 我试图在下面的例子中展示我想要的东西

例如:

table 1

        Header1        Date          NER
481247 Some text here  01.01.2021    [president, Washington D.C.]
481247 Another header  05.03.2021    [London, Darwin]
481248 Header          13.03.2021    [Facebook, Zuckerberg]

table 2

       Header2                  Date          NER
57864 Different header here     01.01.2021    [White House, Biden]
57865 Other header              22.01.2021    [Tesla, Elon]
57866 Another different header  05.03.2021    [Charles Darwin]

Resulting table

Header1         Date       NER                           Header2                   Date        NER     
Some text here  01.01.2021 [president, Washington D.C.]  Different header here     01.01.2021  [White House, Biden]
Another header  05.03.2021 [London, Darwin]              Another different header  05.03.2021  [Charles Darwin]

concat将允许您根据日期或任何其他完全匹配的列(类似的关键字请求不同)对齐数据帧。如果将日期作为索引,然后将两个数据帧传递给pd.concat,则具有公共日期的列将并排放置

import pandas as pd

data1 = {"ChipID":["A1","B2","C3","E5"],"something":[2,3,4,54]}

data2 = {"ChipID":["A1","B1","C3","D4","E5"],"something else":[5,3,23,6,5]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

############ SET INDEX ############
df1 = df1.set_index("ChipID")
df2 = df2.set_index("ChipID")

df_out = pd.concat([df1,df2],axis=1,sort=False)

是的,但如果我想对列进行合并,这些列中的值不完全匹配,但在其含义范围内,该怎么办?