首页 > 解决方案 > 获取系列中的最后一个值以匹配熊猫中的某些条件

问题描述

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

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

我正在尝试做的是从匹配特定条件的第一个数据帧中获取最后一个时间戳。在这种情况下,如果 Line 1, P1, Depot 1 的最后一个时间戳是 08:20。我不是 100% 确定从哪里开始这种类型的争吵

标签: pythonpython-3.xpandas

解决方案


我认为需要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

推荐阅读