我有2个列表和一个DF:印第安纳州邮政编码,俄亥俄州邮政编码和礼品购买者邮政编码(数据框)。有348个印第安纳州邮政编码,227个俄亥俄州邮政编码和6,000个购买者邮政编码(其中一些不是基于俄亥俄州或印第安纳州)]
我想在购买者数据框中找到所有匹配的邮政编码,并查看印第安纳州或俄亥俄州邮政编码列表中是否有任何邮政编码匹配,如果有,则将购买者列表的整行附加到相应的状态列表
purchaser_zip = purchasers['zip']
indiana_zip = indiana['zip']
ohio_zip = ohio['zip']
ohio_match = []
indiana_match = []
for i in purchaser_zip:
if i == indiana_zip.any():
indiana_match.append(i)
for i in purchaser_zip:
if i == ohio_zip.any():
ohio_match.append(i)
我会使用join方法,但是这些列表的长度不相等。而且我只返回一个空列表
您可以使用isin
:
indiana_match = purchasers[purchasers['zip'].isin(indiana_zip)]
ohio_match = purchasers[purchasers['zip'].isin(ohio_zip)]