Почему панды Dataframe позволяют сравнивать строковый столбец со столбцом метки времени?и какова логика - PullRequest
0 голосов
/ 16 декабря 2018

Я на Python 2.7.

Я хочу понять, как принимается решение в первом примере ниже?всегда ли он возвращает True?

Я бы подумал, что это должно привести к ошибке, поскольку строка и метка времени не сравнимы напрямую.Во втором примере я беру отдельное значение из двух данных и сравниваю, это действительно вызывает ошибку.

str_df = pd.DataFrame(['a', 'b'], columns=['str'])
time_df = pd.DataFrame([pd.Timestamp('2018-12-12'), pd.Timestamp('2018-12-14')],columns=['date'])
str_df['str'] > time_df['date']

Out[30]: 
0    True
1    True
dtype: bool

Out[31]: str_df.at[0, 'str'] <time_df.at[0,'date']
Traceback (most recent call last):
  File "C:\pithon.shared - Copy\prod\400.123\lib\site-packages\IPython\core\interactiveshell.py", line 2881, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-32-d6617ccabf86>", line 1, in <module>
    str_df.at[0, 'str'] <time_df.at[0,'date']
  File "pandas\tslib.pyx", line 941, in pandas.tslib._Timestamp.__richcmp__ (pandas\tslib.c:18619)
TypeError: Cannot compare type 'Timestamp' with type 'str'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...