неподдерживаемые типы операндов для &: 'str' и 'Timestamp' - PullRequest
0 голосов
/ 19 февраля 2019

Оператор:

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

Ошибка: неподдерживаемые типы операндов для &: 'str' и 'Timestamp'

Мой кадр данных pandas - df.Он состоит из торгового журнала.

Когда я фильтрую df по символу и (&) отметке времени, я получаю вышеуказанную ошибку

Что я сделал неправильно?Я не хочу менять свою метку времени на стр.

df

            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

Ожидаемые результаты: 63

Фактические результаты: неподдерживаемые типы операндов для &: 'str' и 'Timestamp'

Ответы [ 2 ]

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

Вы можете попробовать, как показано ниже, чтобы найти результат

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

здесь оператор '&' превосходит оператор '=='.

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

Добавьте скобки, потому что приоритет оператора в Python .Побитовое и (&) имеет приоритет над равным (==), поэтому в этом случае требуются круглые скобки.Также сравните столбец Date с max:

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