拆分列并从中提取

时间:2019-09-10 10:27:03

标签: python python-3.x pandas

我有一个数据框all_data,其中地址列的标题粘贴在下面。

all_data['Address'].head()

0             Brocklebank Ground, Torver, LA21 8BS
1                 23 Leigh Street, Aspull, WN2 1QQ
2    Dewsland, Ponthenry Road, Pontyates, SA15 5TY
3               1 Croft Close, Wainfleet, PE24 4DT
4                 3 Landor Avenue, Killay, SA2 7BP
Name: Address, dtype: object

我正在尝试仅提取邮政编码以将其放入新列中:

all_data['Postcode'] = all_data['Address'].str.split(',')[-1]

我收到以下错误消息:

ValueError: Length of values does not match length of index

我应该怎么做?

2 个答案:

答案 0 :(得分:1)

请注意,大多数Series向量化的字符串操作必须在str访问器之后,在获取字符串切片时也是如此。因此,您在str之后缺少str.split,因此无法分割列表。

df['Address'].str.split().str[-1]

0    8BS
1    1QQ
2    5TY
3    4DT
4    7BP
Name: Address, dtype: object

答案 1 :(得分:0)

最好在需要提取信息或对每个元素应用功能更改时使用applymap()

postals = all_data['Address'].head().apply(lambda x: x.split()[-1])