从DataFrame字符串列提取首个空格前子串并转为列表的方法
解决方案
这里提供几种高效的pandas处理方法,实现从DataFrame的b列提取首个空格前的子串并转为目标列表:
方法1:使用str.split()分割取首段
这是最直观的方式,通过限制分割次数提升效率:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'a': ['id1', 'id2', 'id3', 'id4'], 'b': ['abc 123 tr', 'abd1 124 tr', 'abce 126 af', 'abe 128 nm'], 'x': [2, 6, 9, 12] }) # 提取并转换为列表 list_of_strings = df['b'].str.split(' ', n=1).str[0].tolist() print(list_of_strings) # 输出: ['abc', 'abd1', 'abce', 'abe']
n=1参数确保每个字符串仅被分割一次,避免后续空格干扰,直接取分割后的第一个元素即可。
方法2:正则表达式匹配(str.extract())
通过正则精准匹配开头的非空白字符序列:
list_of_strings = df['b'].str.extract(r'^(\S+)', expand=False).tolist() print(list_of_strings)
正则^(\S+)表示匹配字符串开头的连续非空白字符,刚好对应首个空格前的内容。
方法3:使用str.partition()拆分
该方法会将字符串拆分为「前缀-分隔符-后缀」的元组,直接取前缀部分:
list_of_strings = df['b'].str.partition(' ')[0].tolist() print(list_of_strings)
这种方法逻辑清晰,适合需要同时处理分隔符前后内容的场景,这里仅取第一个元素即可。
内容的提问来源于stack exchange,提问作者Tipo33
相关产品推荐
相关产品推荐

