Python如何从DataFrame的完整邮政编码字段中提取国家代码
pandas提取邮政编码前两位国家代码实现方案
你需要实现的是提取字符串列的前两位字符,直接用pandas内置的字符串访问器str做切片即可,不需要用到factorize、groupby这类用于分类编码、分组聚合的方法,相关实现代码如下:
import pandas as pd df = pd.DataFrame({ 'CODE_LOAD_PLACE' : ['PL43100', 'CZ25905', 'DE29333', 'DE29384', 'SK92832'] }) # 提取前两位字符作为国家代码列 df['COUNTRY_LOAD_PLACE'] = df['CODE_LOAD_PLACE'].str[:2] print(df)
运行后即可得到你期望的输出结果:
CODE_LOAD_PLACE COUNTRY_LOAD_PLACE 0 PL43100 PL 1 CZ25905 CZ 2 DE29333 DE 3 DE29384 DE 4 SK92832 SK
补充说明:
.str是pandas专门用于Series字符串操作的访问器,后面接[:2]就是对每个字符串取前两位的切片操作- 如果数据集里存在长度不足2位的异常编码,可以加异常兼容逻辑,示例:
# 异常值兼容:长度不足2位的编码对应的国家代码填充为'未知' df['COUNTRY_LOAD_PLACE'] = df['CODE_LOAD_PLACE'].str[:2].where(df['CODE_LOAD_PLACE'].str.len() >= 2, '未知')
内容的提问来源于stack exchange,提问作者BudzynskiA
相关产品推荐
相关产品推荐

