Короче говоря : не рекомендуется конвертировать в date
объекты, так как тогда вы потеряете много функциональности для проверки date
s. Может быть лучше просто dt.floor(..)
[pandas-doc] или dt.normalize(..)
[pandas-doc] .
Вы можете преобразовать последовательность строк с помощью pd.to_datetime(..)
[pandas-doc] , например:
>>> pd.to_datetime(pd.Series(['2013-01-25 00:00:00+00:00']))
0 2013-01-25
dtype: datetime64[ns]
Затем мы можем затем преобразовать это в date
объекты с .dt.date
[pandas-doc] :
>>> pd.to_datetime(pd.Series(['2013-01-25 00:00:00+00:00'])).dt.date
0 2013-01-25
dtype: object
Обратите внимание, что date
является , а не нативным типом Numpy, и поэтому он будет использовать объект Python date(..)
. Недостатком этого является то, что вы больше не можете обрабатывать объекты, подобные объектам типа datetime. Таким образом, Series
более или менее теряет большую функциональность.
Возможно, было бы лучше просто dt.floor(..)
[pandas-doc] в день и, таким образом, оставить его datetime64[ns]
объектом:
>>> pd.to_datetime(pd.Series(['2013-01-25 00:00:00+00:00'])).dt.floor(freq='d')
0 2013-01-25
dtype: datetime64[ns]
Мы также можем использовать dt.normalize(..)
[pandas-doc] . Это просто устанавливает компонент времени на 0:00:00
и оставляет часовой пояс без изменений:
>>> pd.to_datetime(pd.Series(['2013-01-25 00:00:00+00:00'])).dt.normalize()
0 2013-01-25
dtype: datetime64[ns]