我有一个包含原始数据的数据框,其中包括如下所示的相关数据,这些数据按时间戳排序。
df1
Line Timestamp Depot Product
0 Line1 08:00 1 P1
1 Line1 08:10 1 P1
2 Line2 08:15 1 P4
3 Line1 08:20 1 P1
4 Line3 08:23 2 P13
5 Line1 08:30 2 P1
对于每个由此衍生的生产线,我都有一个汇总表,其相关数据如下所示:
df2
Line Product Depot Time_Complete
0 Line 1 P1 1 NaN
1 Line 1 P1 2 NaN
2 Line 1 P2 1 NaN
3 Line 1 P2 1 NaN
我想做的是从符合特定条件的第一个数据帧中获取最后一个时间戳。在这种情况下,如果1号线P1站点1的最后一个时间戳为08:20。我不是100%知道从哪里开始这种争吵
答案 0 :(得分:1)
我认为需要drop_duplicates
的指定列,然后需要merge
的左连接:
df11 = df1.drop_duplicates(['Line','Depot','Product'], keep='last')
df = df2.merge(df11, on=['Line','Depot','Product'], how='left')
print (df)
Line Product Depot Time_Complete Datestamp
0 Line1 P1 1 NaN 08:20
1 Line1 P1 2 NaN 08:30
2 Line1 P2 1 NaN NaN
3 Line1 P2 1 NaN NaN