如何基于另一个数据框设置列值

时间:2019-07-29 15:22:09

标签: python python-3.x pandas

我正在一个有两个数据输入的项目中,我需要根据第二个DataFrame的索引将这些数据仅合并到一个DataFrame中。

我的第一个DataFrame如下所示:

    user        artist        song      timestamp
0  user_1       artist_1     song_1   2019-02-21 23:45  
1  user_1       artist_2     song_2   2019-02-21 23:49  
2  user_2       artist_2     song_3   2019-02-21 23:52

第二个DataFrame如下所示:

                        artist       song
id                                                                        
9A9xGpfS2eZn3T4Z       artist_1     song_1
ke5EfOpcvTl0dtyR       artist_2     song_2
9YjNEwfS4kX7aHvg       artist_2     song_3

我正在寻找但无法获得的结果如下:

    user        song_id                timestamp
0  user_1       9A9xGpfS2eZn3T4Z    2019-02-21 23:45  
1  user_1       ke5EfOpcvTl0dtyR    2019-02-21 23:49  
2  user_2       9YjNEwfS4kX7aHvg    2019-02-21 23:52

有没有使用pandas内置函数来获得此结果的方法?

谢谢!

1 个答案:

答案 0 :(得分:1)

df1是您的第一个DataFrame,df2是您的第二个DataFrame。然后您可以使用:

new_df = df1.merge(df2, on=['artist', 'song'], how='left')

然后,您可以根据需要重命名和删除。