Как сравнить столбец даты панд с жестко закодированной датой - PullRequest
0 голосов
/ 18 октября 2019

Это мой код:

print (df.loc[df.DATE == '2016-02-05'])

Я пытаюсь сравнить эту дату с датой панд. Возвращает пустой фрейм данных. Что я должен делать?

Редактировать: Исходный кадр данных:

enter image description here

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Просто преобразуйте вашу строку в datetime (я полагаю, что ваш датафрейм также содержит datetime, а не строки) и сделайте сравнение, которое вы хотели сделать:

from datetime import datetime

if __name__ == "__main__":
    t = datetime.strptime('2016-02-05', '%Y-%m-%d')
    print(t)

Надеюсь, ответ поможет, не стесняйтесьзадавайте вопросы.

Если ваш столбец DATE df не datetime, а просто строки, преобразуйте их в datetime таким же образом.

0 голосов
/ 18 октября 2019

Вам также необходимо преобразовать строку в объект datetime.

print(df)

datetime_str = '2015/02/04'
print("({}){}".format(type(datetime_str), datetime_str))

datetime_object = datetime.strptime(datetime_str, '%Y/%m/%d')
print("({}){}".format(type(datetime_object), datetime_object))

value = df.loc[df.DATE == datetime_object]
print("value =", value)

ВЫХОД:

   year  month  day       DATE
0  2015      2    4 2015-02-04
1  2016      3    5 2016-03-05

(<class 'str'>)2015/02/04

(<class 'datetime.datetime'>)2015-02-04 00:00:00

value =    year  month  day       DATE
        0  2015  2      4         2015-02-04
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...