Skip to main content
 首页 » 编程设计

python之根据数据框中的列选择最新值

2025年05月04日1898°冷暖

我有一个包含数据的数据框:

    SymbolTime  AsdRtg MaturityDate 
0   2019-10-18  1.9500   2020-05-01 
1   2019-10-19  1.9820   2020-05-01 
2   2019-10-20  2.1075   2020-05-01 
3   2019-10-18  2.1075   2020-08-01 
4   2019-10-19  1.7790   2020-08-01 

我想从上面提取数据,以便只返回具有最新 SymbolTime 日期的行。即期望的输出是:

    SymbolTime  AsdRtg MaturityDate 
2   2019-10-20  2.1075   2020-05-01 
4   2019-10-19  1.7790   2020-08-01 

我想我需要在某些方面使用 groupby 但我无法将它们组合在一起。

请您参考如下方法:

IIUC、groupby 和 tail

df.SymbolTime = pd.to_datetime(df.SymbolTime) 
 
df.groupby(df.SymbolTime.diff().dt.days.ne(1).cumsum()).tail(1) 

  SymbolTime  AsdRtg MaturityDate 
2 2019-10-20  2.1075   2020-05-01 
4 2019-10-19  1.7790   2020-08-01