Python поле даты и времени - PullRequest
1 голос
/ 28 мая 2020

См. Эту программу:

dfPeople = pd.DataFrame({'name': ['alice','bob'],'date_of_birth': ['10/25/1995 03:30','10/29/2002 9:25']})

dfPeople['date_of_birth'] = pd.to_datetime(dfPeople['date_of_birth'])

dfPeople['date_of_birth'].dtype 

theDate = dfPeople['date_of_birth'].dt.date

theDate должен извлекать дату. Когда я пробую что-то вроде этого

if theDate[0]=='1995-10-25':
    print("equal")

, я не вижу напечатанного оператора. Заранее спасибо.

1 Ответ

4 голосов
/ 28 мая 2020

Ожидается, потому что тип сравнения date с типом string.

Так нужно:

from datetime import datetime

if theDate[0]==datetime.strptime('1995-10-25', '%Y-%m-%d').date():
     print("equal")

При желании сравнение в pandas для маски возможно использовать Series.dt.floor или Series.dt.normalize для времени удаления, но все же даты, поэтому сравните с работающими строками:

theDate = dfPeople['date_of_birth'].dt.floor('d')
#alternative
#theDate = dfPeople['date_of_birth'].dt.normalize()
print (theDate == '1995-10-25')   
0     True
1    False
Name: date_of_birth, dtype: bool
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...