Ваш столбец dtype=object
, поскольку он состоит из datetime
данных, а также данных с одним или несколькими другими dtypes.
Вам следует преобразовать весь столбец в datetime
:
allHoldings['carry_dt'] = pd.to_datetime(allHoldings['carry_dt'], errors='coerce')
Обратите внимание, что элементы, которые не могут быть преобразованы, будут преобразованы в NaT
(«Не время»).Если вы хотите заполнить их какой-либо датой по умолчанию, вы можете сделать это, используя pd.Series.fillna
.Например:
allHoldings['carry_dt'] = allHoldings['carry_dt'].fillna(pd.to_datetime('today'))
Затем выполните сравнение, используя datetime
:
allHoldings.loc[allHoldings['carry_dt']==pd.to_datetime('2018-05-17')]
Преимущества многократны:
- Вы увидите производительность и памятьулучшения, поскольку
datetime
серии хранятся в числовом базовом формате. - Вы не сталкиваетесь с проблемами, пытаясь выровнять определенные строковые форматы.