如何将Pandas DataFrame中长度不一的字符串列从右侧拆分为多列
字符串列右侧拆分实现方案
Pandas提供了Series.str.rsplit()方法,专门用于从字符串右侧开始按指定分隔符拆分,完全适配需求,具体实现如下:
核心代码
import pandas as pd # 示例DataFrame,可替换为你自己的数据集 df = pd.DataFrame({ 'Col_1': ['Hello X Y', 'Hello world Q R', 'Hi S T'], 'Col_2': ['A', 'B', 'C'] }) # 从右侧拆分,最多拆分2次,生成3个新列 split_res = df['Col_1'].str.rsplit(pat=' ', n=2, expand=True) # 为拆分后的列命名,可按需修改名称 split_res.columns = ['prefix_col', 'second_last_col', 'last_col'] # 合并拆分结果到原DataFrame df = pd.concat([df, split_res], axis=1)
参数说明
pat=' ':指定空格为拆分分隔符n=2:限制最多拆分2次,无论开头部分是1个还是2个单词,都会完整保留在第一个拆分结果列中expand=True:直接返回DataFrame格式的拆分结果,无需额外格式转换
运行结果
执行上述代码后,得到的最终DataFrame如下:
Col_1 Col_2 prefix_col second_last_col last_col 0 Hello X Y A Hello X Y 1 Hello world Q R B Hello world Q R 2 Hi S T C Hi S T
可选边界处理
如果存在部分行末尾不足2个单词的场景,可补充空值填充逻辑避免后续报错:
split_res = df['Col_1'].str.rsplit(' ', n=2, expand=True).fillna('')
内容的提问来源于stack exchange,提问作者K-83Rick
相关产品推荐
相关产品推荐

