'IndexError: list index out of range' when applying lambda function to a column in pandas

'IndexError: list index out of range' when applying lambda function to a column in pandas

我有一个 pandas 数据框,其中一列包含地址信息,我想将地址切片以仅提供邮政编码并将其放入新列中。例如,典型的地址如下所示:

609 Lizeth Streets Bolton MA 01740 US.

为了获取 zip 我试过:

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

这样做我得到一个

'IndexError: list index out of range'

旁注:当我没有指定索引时,它会按照我的预期将拆分列表放在列中(即 [609, Lizeth, Streets, Bolton, MA, 01740, US])。我可以看到 zip 在 [-2] 位置,我只是不知道为什么它不会抓住它。此外,尝试获取 [1] 索引也会引发相同的错误。唯一似乎有效的索引是当我使用 [-1] 时它会获取 'US'

我是 python 的新手,在 pandas 中处理数据,因此非常感谢您的帮助!

您可以尝试以下方法:

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