将lambda函数应用于pandas中的列时出现“ IndexError:列表索引超出范围”

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

609 Lizeth Streets Bolton MA 01740 US。

要尝试抓取拉链,

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

这样做我得到一个

“ IndexError:列表索引超出范围”

旁注:当我未指定索引时,它将按我期望的那样将拆分列表放在列中(即[609,Lizeth,Streets,Bolton,MA,01740,US])。我可以看到拉链位于[-2]位置,但我不知道为什么它不能抓住它。此外,尝试获取[1]索引也会引发相同的错误。唯一可行的索引是当我使用[-1]来抓取“美国”

我是python的新手,在熊猫中处理数据,所以我们将不胜感激!

w476226477 回答:将lambda函数应用于pandas中的列时出现“ IndexError:列表索引超出范围”

这是您可以尝试的一种方式:

df['Zipcode'] = df['Address'].str.split(' ').str[-2]
本文链接:https://www.f2er.com/2775962.html

大家都在问