如何从Pandas DataFrame中截取子串:提取字符串前缀的前两个字母
提取Pandas DataFrame中值的前两个字母
嘿,这个需求太常见啦,用Pandas分分钟就能搞定!我给你分享几种实用的方法,你可以根据自己的习惯选:
方法1:直接用字符串索引(最简洁)
假设你的DataFrame里存这类值的列名叫code,直接用str[:2]就能提取前两个字符,代码示例如下:
import pandas as pd # 先创建一个示例DataFrame df = pd.DataFrame({'code': ['BB1283980901', 'CC4567890123', 'DD9876543210']}) # 提取前两个字母,生成新列prefix df['prefix'] = df['code'].str[:2] print(df)
运行后你会得到新列prefix,里面就是每个值的前两个字母啦。
方法2:使用str.slice()方法(更灵活)
如果需要更明确地指定截取范围,可以用str.slice(),效果和上面完全一样:
df['prefix'] = df['code'].str.slice(start=0, stop=2)
这种写法在需要调整截取位置的时候更清晰,比如以后要取前3个字符,直接改stop值就行。
小提示:处理缺失值
如果你的列里有NaN或者空字符串,Pandas的字符串方法会自动返回NaN,不用额外处理,非常省心。要是想把缺失的前缀替换成特定值(比如'NA'),可以加个fillna():
df['prefix'] = df['code'].str[:2].fillna('NA')
验证结果
可以用df['prefix'].unique()来查看所有提取到的前缀,确认是不是都是两个字母,确保操作没问题~
内容的提问来源于stack exchange,提问作者Robert Cleyton Rodrigues
相关产品推荐
相关产品推荐

