То же условие для даты. Верно для серии, но неверно для элемента. - PullRequest
0 голосов
/ 16 октября 2018

Почему то же условие верно для серии, но неверно, если используется тот же элемент серии напрямую?

import pandas as pd
df = pd.DataFrame({'date': pd.to_datetime('2013-11')},
     index=[0])
print(df['date'] == '2013-11')
print('')
print(df.loc[0,'date'] == '2013-11')

Я получаю:

0    True
Name: date, dtype: bool

False

1 Ответ

0 голосов
/ 16 октября 2018

Потому что:

  1. df['date'] - это pandas.Series из dtype datatime64[ns]
  2. df['date'] == '2013-11' - это вызов pandas.Series.__eq__, и Панды могут делать все, что угодноон хочет, когда пишет этот метод.

То, что делает Pandas, должно помочь вам понять, что вы сравниваете строку с series из dtype datetime.Поэтому он пытается проанализировать строку как нечто полезное, а затем выполняет сравнение.Это часть добавленной стоимости, которую обеспечивает Pandas.

...