如何查询第二个数据框以填充第一个数据框的列中的值

时间:2019-12-12 16:00:31

标签: python-3.x pandas

我有两个数据框:

df1.head()
    ParticipantId   EventTime                    DayofWeek
0   1               2019-10-29 19:47:20.797000   Tuesday
1   7               2019-08-26 16:18:31.410000   Monday
2   5               2019-10-10 20:50:54.757000   Thursday
3   1               2019-10-22 16:21:21.470000   Tuesday
4   9               2019-10-07 21:44:27.073000   Monday
    .
    .

df2.head()
    ParticipantId   WeekDay     WakeTime    
0   1               Monday      09:00:00    
1   1               Tuesday     09:00:00    
2   1               Wednesday   09:00:00    
3   1               Thursday    09:00:00    
4   1               Friday      09:00:00
    .
    .
7   2               Monday      09:30:00
    .
    .

基本上,我想做的是向df1添加一列,其中参与者从df2起醒来。这样我就得到了这样的东西:

df1.head()
    ParticipantId   ScheduleName                 DayofWeek  WakeTime
0   1               2019-10-29 19:47:20.797000   Tuesday    09:00:00
1   7               2019-08-26 16:18:31.410000   Monday     10:00:00
2   5               2019-10-10 20:50:54.757000   Thursday   09:00:00
3   2               2019-10-22 16:21:21.470000   Tuesday    09:30:00
4   9               2019-10-07 21:44:27.073000   Monday     08:00:00

到目前为止,我有:

df1['WakeTime'] = [df2[(df2.ParticipantId == x[0]) & (df2.WeekDay == x[1])].values[0][2] for x in df1[['ParticipantId','DayofWeek']].values]

尽管这可行,但我想知道是否有更好的方法可以做到这一点,因为它几乎不可读。

0 个答案:

没有答案