У меня проблема со сравнением дат между двумя фреймами данных внутри логического выражения.
df1:
EmailAddress DateTimeCreated
1@1 2019-02-12 20:47:00
df2:
EmailAddress DateTimeCreated
1@1.com 2019-02-07 20:47:00
2@2.com 2018-11-13 20:47:00
3@3.com 2018-11-04 20:47:00
Я хочу сделать три вещи, когда в df1 есть строка:
1. Compare to see if `EmailAddress` from df1 is present in df2:
1a. If `EmailAddress` is present, compare `DateTimeCreated` in df1 to `DateTimeCreated` in df2,
2. If `DateTimeCreated` in df1 is greater than today-90 days append df1 into df2.
Проще говоря:
Я хочу видеть, что адрес электронной почты присутствует в df2, и, если это так, сравнить datetime, созданный в df2, чтобы увидеть, был ли он больше, чем сегодня-90days с момента последнего ответа человека.Если оно больше 90 дней, добавьте строку из df1 в df2.
Моя логика складывает все, но я не уверен, что я делаю неправильно, например:
import pandas as pd
from datetime import datetime, timedelta
df2.append(df2.loc[df2.EmailAddress.isin(df1.EmailAddress)&(df2.DateTimeCreated.ge(datetime.today() - timedelta(90)))])
что я делаю не так, чтобы испортить дату?
РЕДАКТИРОВАТЬ:
В приведенном выше примере между кадрами данных строка из df1 не будет добавлена. BC DateTimeCreated находится между TODAY () - 90 дней.