Python实现:基于字符串最后两位生成DataFrame新列
提取URN末尾的国家代码
针对你的需求,这里有几种高效处理大型DataFrame的方法:
方法1:字符串分割(最直观)
利用str.split()按-分割字符串,取最后一段,同时用str.strip()去除可能的首尾空格:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'urn': [ 'CS16-1533232-GB ', 'CS16-1533233-GB ', 'CS16-1533234-GB ', 'CS16-1533235-BZ ', 'CS16-1533238-GB' ] }) # 提取国家代码 df['country'] = df['urn'].str.strip().str.split('-').str[-1]
方法2:字符串切片(性能最优)
如果国家代码固定是2位,直接从字符串末尾截取,先处理空格:
df['country'] = df['urn'].str.strip().str[-2:]
这种方法速度最快,适合超大型数据集。
方法3:正则表达式(适配复杂格式)
如果URN格式有变化,用正则匹配末尾的两位大写字母:
df['country'] = df['urn'].str.extract(r'([A-Z]{2})$', expand=False).str.strip()
运行后可得到目标结果:
urn country 0 CS16-1533232-GB GB 1 CS16-1533233-GB GB 2 CS16-1533234-GB GB 3 CS16-1533235-BZ BZ 4 CS16-1533238-GB GB
内容的提问来源于stack exchange,提问作者Ed Jefferies
相关产品推荐
相关产品推荐

