Я использую таблицу почтовых индексов, чтобы создать таблицу округов для хороплота.Мой код работает нормально, когда я даю ему небольшой игрушечный пример, но когда я даю ему фрейм данных, он зависает.Я не могу поделиться кадром данных, но это +/- 70 000 почтовых индексов, закодированных в виде строк, и значения могут быть правильными почтовыми индексами, не числовой строкой или числовой строкой, которая не является правильным почтовым индексом, каждый в строковом формате.Это код:
# import libraries
import numpy as np
import pandas as pd
# load customer email table
df = pd.read_csv('customer_April2018.csv', encoding='latin-1')
# load zip code table
zc = pd.read_csv('us_postal_codes.csv', encoding='latin-1')
def zip_toCounty(zip):
for i, row in zc.iterrows():
try:
if int(zip) == zc['ZipCode'].loc[i] : return zc['County'].loc[i]
except ValueError : return 'No County'
return 'No County'
g = lambda s : zip_toCounty(s)
df['County']=df['ZipCode'].apply(g)
df.to_csv('join_test.csv',index=False)
Я не получаю ошибок, но предполагаемое время завершения составляет более 40 часов, что совершенно неразумно, учитывая размер данных.Я должен использовать что-то не так, как я могу ускорить обработку?Один человек предложил хэш-функцию, это лучший вариант здесь?