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