我有set
个电子邮件地址,我从一组值中选择了这些地址。我希望对pandas DataFrame
进行子集,以仅包含集合中未包含unique_id
列值的行。以下是我所做的非常慢的事情:
signup_emails = set(online_signup.unique_id)
non_email_signup_event_emails = event_attendees[event_attendees.unique_id.apply(lambda x: x in signup_emails) == False].email
该表是几十万行,但是我的计算机只是冻结了这个命令,显示了高CPU负载,即使经过漫长的等待(20分钟)也不会终止。我怎么能更快地做到这一点?
答案 0 :(得分:1)
使用isin
方法。
event_attendees[event_attendees.isin(signup_emails)]
如果没有在signup_emails中,你可以
event_attendees[event_attendees.isin(signup_emails) == False]