Как получить только одно логическое значение при сравнении нескольких условий? - PullRequest
1 голос
/ 07 марта 2019

Я использую этот код для сравнения нескольких условий между фреймами данных:

    boolean = df1.EmailAddress.isin(df2.Email) & df2.DateTimeCreated.ge(datetime.today() - timedelta(90))

Переменные выходы становятся сериями со значением 'False', как например:

0
False
False

Однакокогда я выполняю оба условия независимо, они выводят на True, что является правильным ответом, который я ищу.Почему оба условия по умолчанию равны False?и как мне вернуть только один результат?например True.

1 Ответ

2 голосов
/ 07 марта 2019

панды &(and) чувствительны к index, поскольку ваше 1-е условие от df1 (будет иметь index, такое же как df1), а 2-е условие от df2 будет иметь то же index как df2, что сделает ответ проводным.

cond1=df1.EmailAddress.isin(df2.Email)
cond2=df2.DateTimeCreated.ge(datetime.today() - timedelta(90))

Fix

cond1=df1.EmailAddress.isin(df2.Email)
cond2=df1.DateTimeCreated.ge(datetime.today() - timedelta(90))#change df2 here to df1
...