获取值是系列中的最后一个值以匹配熊猫中的某些条件

时间:2018-07-27 08:32:24

标签: python python-3.x pandas

我有一个包含原始数据的数据框,其中包括如下所示的相关数据,这些数据按时间戳排序。

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%知道从哪里开始这种争吵

1 个答案:

答案 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