IndexError: список индексов вне диапазона при применении лямбда-функции к столбцу в pandas - PullRequest
0 голосов
/ 13 января 2020

У меня есть pandas фрейм данных, в котором один из столбцов содержит информацию об адресе, и я хочу разделить адрес, чтобы предоставить только почтовый индекс и поместить его в новый столбец. Например, типичный адрес выглядит следующим образом:

609 Lizeth Streets Bolton MA 01740 US.

Чтобы получить почтовый индекс, который я пробовал:

split_zip = lambda x: str(x).split()[-2]
df['Zipcode'] = df['Address'].apply(split_zip)

При этом я получаю

'IndexError: индекс списка вне диапазона'

Sidenote: Когда я не указываю индекс, он помещает разделенный список в столбце, как я и ожидал (т.е. [609, Лизет, Стритс, Болтон, Массачусетс, 01740, США]). Я вижу, что почтовый индекс находится в положении [-2], и я просто не знаю, почему он его не захватит. Кроме того, попытка получить индекс [1] также вызывает ту же ошибку. Единственный индекс, который, кажется, работает, когда я использую [-1], который захватывает 'US'

Я довольно плохо знаком с python и работаю с данными в pandas, поэтому любая помощь будет принята с благодарностью !

1 Ответ

0 голосов
/ 13 января 2020

Вот способ, которым вы можете попробовать:

df['Zipcode'] = df['Address'].str.split(' ').str[-2]
...