Pandas 合并添加列

GNM*_*O11 2 python merge pandas

我有两个数据框df1df2. df1包含列subject_idtimedf2包含列subject_idfinal_time。我想要做的是为每个subject_idindf1添加一列,其中包含 final_timefromdf2但仅来自于subject_ids中包含的df1。我已经尝试过df1.merge(df2,how='left'),但仍然得到了所有更长subject_iddf2并且包含许多重复的“subject_id”。

我正在寻找的示例:

df1


    subject_id  time  

 0          15  12:00 
 1          20  12:05 
 2          21  12:10
 3          25  12:00 

df2


    subject_id  final_time 

 0          15       12:30      
 1          15       12:30      
 2          15       12:30      
 3          20       12:45      
 4          20       12:45      
 5          21       12:50      
 6          25        1:00       
 7          25        1:00       
 8          25        1:00      
Run Code Online (Sandbox Code Playgroud)

我在寻找什么

    subject_id  time  final_time 

 0          15  12:00      12:30      
 1          20  12:05      12:45      
 2          21  12:10      12:50      
 3          25  12:00       1:00       
Run Code Online (Sandbox Code Playgroud)

小智 6

你应该使用

df1.merge(df2, on='subject_id')
Run Code Online (Sandbox Code Playgroud)

默认值为how“inner”,它仅匹配两列中的条目。on告诉合并仅匹配您感兴趣的列