Python 如何正确地将一个功能合并/连接到另一个数据帧

Python 如何正确地将一个功能合并/连接到另一个数据帧,python,pandas,join,merge,concat,Python,Pandas,Join,Merge,Concat,我必须添加数据帧,我想将第一个数据帧的3个特性添加到第二个数据帧,但前提是它们与某个键值(TicketNr)匹配。此键不是唯一的,可以在两个数据帧中出现多次 我尝试过不同版本的concat、merge和join,但我无法按我需要的方式获得它们。我不想在数据框中添加任何行,只想添加这三列 我想这个例子总结了我的问题。谁能帮我找到正确的代码? 您提到TicketNr在培训集中不是唯一的,但如果我正确地假设TicketServrate、AllSurved、AllDeed都是相同的,只要TicketNr

我必须添加数据帧,我想将第一个数据帧的3个特性添加到第二个数据帧,但前提是它们与某个键值(TicketNr)匹配。此键不是唯一的,可以在两个数据帧中出现多次

我尝试过不同版本的concat、merge和join,但我无法按我需要的方式获得它们。我不想在数据框中添加任何行,只想添加这三列

我想这个例子总结了我的问题。谁能帮我找到正确的代码?

您提到TicketNr在培训集中不是唯一的,但如果我正确地假设TicketServrate、AllSurved、AllDeed都是相同的,只要TicketNr相同,我们可以尝试以下方法:

# Drop duplicates to get one row per TicketNr, assuming that
# TicketSurvRate, AllSurvived, AllDIED are uniquely defined by TicketNr 
x = engineered_train[
    ['TicketNr', 'TicketSurvRate', 'AllSurvived', 'AllDIED']].drop_duplicates()

# Merge test dataset with these de-duplicated stats.
# The how='left' parameter will keep all records from the test set.
# There will be `NaN`s where no match for TicketNr is found.
engineered_test.merge(x, how='left', on='TicketNr')