Saya menggunakan kode ini untuk membandingkan beberapa kondisi antara kerangka data:

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

Output variabel menjadi seri dengan 'False' sebagai pilihan seperti:

0
False
False

Namun ketika saya menjalankan kedua kondisi secara independen, mereka menghasilkan True, yang merupakan jawaban benar yang saya cari. Mengapa kedua kondisi default ke False? dan bagaimana saya hanya mendapatkan kembali satu hasil? misalnya True.

1
RustyShackleford 7 Maret 2019, 03:01

1 menjawab

Jawaban Terbaik

Pandas &(and) adalah index sensitif , karena kondisi pertama Anda berasal dari df1(akan memiliki index sama dengan df1), dan kondisi ke-2 dari df2 akan memiliki index yang sama dengan df2, yang akan membuat jawabannya terhubung.

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

Memperbaiki

cond1=df1.EmailAddress.isin(df2.Email)
cond2=df1.DateTimeCreated.ge(datetime.today() - timedelta(90))#change df2 here to df1
2
BENY 7 Maret 2019, 00:06