Python中按分隔符每隔一位将单列拆分至多列的实现方法
Pandas 实现指定列两两配对拆分
核心逻辑是先按分隔符全量切分字符串,再按步长2取元素组,组内重新拼接为配对值,最后映射为多列即可,具体实现如下:
- 单字符串拆分规则:对形如
a;b;c;d的字符串,先按;切分为['a','b','c','d'],再按索引0-1、2-3分组,每组重新用;拼接,得到['a;b', 'c;d'],对应两列的取值。 - 批量处理时直接对DataFrame的目标列应用该规则,拆分结果按顺序赋值给新列即可。
完整可运行代码
import pandas as pd # 构造示例数据集 df = pd.DataFrame({ "raw_col": ["1;899.618000;2;0.551582;7;93.643914;8;12.00000"] }) # 定义两两配对拆分函数 def split_to_pairs(text): parts = text.split(";") return [";".join(parts[i:i+2]) for i in range(0, len(parts), 2)] # 批量拆分目标列 split_output = df["raw_col"].apply(split_to_pairs).tolist() # 自动生成新列名Col1、Col2... new_columns = [f"Col{i+1}" for i in range(len(split_output[0]))] # 将拆分结果写入新列 df[new_columns] = split_output
结果说明
运行代码后,示例行的各新列取值如下:
- Col1:
1;899.618000 - Col2:
2;0.551582 - Col3:
7;93.643914 - Col4:
8;12.00000
如果数据中存在某行按;切分后元素总数为奇数的情况,可以在split_to_pairs函数中给parts列表末尾补充默认值(比如空字符串),避免最后一组取值缺失。
内容的提问来源于stack exchange,提问作者Nicole
相关产品推荐
相关产品推荐

