фильтрация кадра данных панд по максимальной дате и символу - PullRequest
0 голосов
/ 22 февраля 2019

Я задал вопрос здесь, и я не получаю сообщение об ошибке, но пустой фрейм данных со столбцами.Что я делаю не так?

Мой исходный фрейм данных ниже

               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'

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Просто чтобы добавить несколько идей.Вы также можете использовать idxmax() или idxmin()

df.loc[df.groupby('Date')['Symbol'].idxmax()]

. Это даст вам максимум Date для каждой Symbol категории.

0 голосов
/ 22 февраля 2019

Преобразовать столбец в дату и время to_datetime, также loc не требуется, поэтому следует удалить:

df['Date'] = pd.to_datetime(df['Date'])
df[(df['Symbol'] == "TLT") & (df['Date'] == df['Date'].max())] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...