猿问

过滤 Pandas 数据框以获得最大日期和符号

我在这里问了一个问题,我没有收到错误,而是一个带有列的空数据框。我究竟做错了什么 ?


我的原始数据框在下面


               Date    Symbol

     49     2018-11-27  0

     50     2018-12-10  0

     51     2018-12-17  0

     52     2018-12-27  XLK

     53     2018-12-27  XLV

     54     2018-12-28  VTV

     55     2019-01-09  0

     56     2019-01-09  0

     57     2019-01-16  0

     58     2019-02-04  0

     59     2019-02-04  0

     61     2019-02-05  SPY

     62     2019-02-05  0

     60     2019-02-05  TLT

     63     2019-02-07  TLT

     64     2019-02-09  0

以下语句有效,但给了我一个空的数据框:


df.loc[(df['Symbol'] == "TLT") & (df['Date'] == df['Date'].max())] 

链接 不支持的 & 操作数类型:'str' 和 'Timestamp'


POPMUISE
浏览 290回答 2
2回答

至尊宝的传说

将列转换为日期时间to_datetime,也不loc是必需的,因此应删除:df['Date'] = pd.to_datetime(df['Date']) df[(df['Symbol'] == "TLT") & (df['Date'] == df['Date'].max())]

绝地无双

只是补充一些想法。您也可以使用idxmax()或idxmin()df.loc[df.groupby('Date')['Symbol'].idxmax()]这将为您Date提供每个Symbol类别的所有最大值。
随时随地看视频慕课网APP

相关分类

Python
我要回答