В большинстве случаев указывается, какие значения возвращаются, если функция сбоя с помощью оператора try-except
:
def convertIpToInt(ip):
try:
return sum([int(ipField) << 8*index for index, ipField in enumerate(reversed(ip.split('.')))])
except:
return 0
Если хотите, также обрабатывайте пропущенные значения:
def convertIpToInt(ip):
try:
if pd.notna(ip):
return sum([int(ipField) << 8*index for index, ipField in enumerate(reversed(ip.split('.')))])
else:
return 'missing'
except:
return 0
Если необходимо применить функцию для некоторые столбцы:
cols = ['col1','col2','col3']
df[cols] = df[cols].applymap(convertIpToInt)
При необходимости примените функцию для всех столбцов:
df = df.applymap(convertIpToInt)