Я пытаюсь применить функцию к столбцу в моем df и добавить 4 новых столбца на основе возвращенного списка.
Вот функция, которая возвращает список.
def separateReagan(data):
block = None
township = None
section = None
acres = None
if 'BLK' in data:
patern = r'BLK (\d{1,3})'
blockList = re.findall(patern,data)
if blockList:
block = blockList[0]
else:
patern = r'B-([0-9]{1,3})'
blockList = re.findall(patern,data)
if blockList:
block = blockList[0]
# Similar for others
return [block,township,section,acres]
А вот код с фреймом данных.
df = df[['ID','Legal Description']]
# Dataframe looks like this
# ID Legal Description
# 0 1 143560 CLARKSON | ENDEAVOR ENERGY RESO | A- ,B...
# 1 2 143990 CLARKSON ESTATE | ENDEAVOR ENERGY RESO ...
# 2 3 144420 CLARKSON RANCH | ENDEAVOR ENERGY RESO |...
df[['Block','Township','Section','Acres']] = df.apply(lambda x: separateReagan(x['Legal Description']),axis=1)
Я получаю эту ошибку:
KeyError: "['Block' 'Township' 'Section' 'Acres'] not in index"
Попытка вернуть набор вместо списка, не сработала.