如何在pyzipcode中忽略错误?处理DataFrame邮编转州报错
处理邮编转州时的报错问题
当遇到找不到的邮编时,只需给映射逻辑加上异常处理或存在性判断,就能跳过错误继续处理剩余数据,以下是两种可行方案:
方案1:使用try-except捕获异常(推荐,可读性更强)
定义一个带异常处理的函数,找不到邮编时返回None(或你需要的默认值):
from pyzipcode import ZipCodeDatabase zcdb = ZipCodeDatabase() def get_state_from_zip(zip_code): try: return zcdb[zip_code].state except KeyError: # 可替换为你需要的默认值,比如空字符串'' return None df4['state'] = df4['postal_code'].map(get_state_from_zip)
方案2:先判断邮编是否存在
直接在lambda里判断邮编是否在数据库中,存在才获取州信息:
df4['state'] = df4['postal_code'].map(lambda x: zcdb[x].state if x in zcdb else None)
两种方式都能避免因单个无效邮编导致整个映射过程中断,确保剩余数据正常处理。
内容的提问来源于stack exchange,提问作者Vivek kanna Jayaprakash
相关产品推荐
相关产品推荐

