我有一个数据框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
我应该怎么做?
答案 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])