Сравнение сегодняшней даты с датой в датафрейме - PullRequest
0 голосов
/ 07 октября 2018

Сравнение сегодняшней даты с датой в данных. Пример данных

id        date
1        1/2/2018
2        1/5/2019
3        5/3/2018
4        23/11/2018

Желаемый вывод

id        date
2        1/5/2019
4        23/11/2018

Мой текущий код

dfdateList = pd.DataFrame()
dfDate= self.df[["id", "date"]]
today = datetime.datetime.now()
today = today.strftime("%d/%m/%Y").lstrip("0").replace(" 0", "")
expList = []
for dates in dfDate["date"]:
    if dates <= today:
        expList.append(dates)

dfdateList = pd.DataFrame(expList)   

В настоящее время мой код печатает каждыйОдной линией, несмотря на условия, кто-нибудь может направить меня?спасибо

1 Ответ

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

Pandas имеет встроенную поддержку для большого класса операций над датами и временем, поэтому одним из решений здесь будет использование pd.to_datetime для преобразования ваших дат из строк в представление даты и времени для панд pd.Timestamp, затем просто создайте маску на основе текущей даты:

df['date'] = pd.to_datetime(df['date'], dayfirst=True)
df[df['date'] > pd.Timestamp.now()]

Например:

In [34]: df['date'] = pd.to_datetime(df['date'], dayfirst=True)

In [36]: df
Out[36]:
   id       date
0   1 2018-02-01
1   2 2019-05-01
2   3 2018-03-05
3   4 2018-11-23

In [37]: df[df['date'] > pd.Timestamp.now()]
Out[37]:
   id       date
1   2 2019-05-01
3   4 2018-11-23
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...