如何将DataFrame中以x为分隔符的字符串列拆分为三列并转换为整数
问题解决方案
1. 拆分WxLxH字符串列为独立整数列
你之前尝试失败大概率是没有处理分隔符x前后的空格,优先推荐使用pandas向量化字符串操作实现,无需自定义apply函数,性能更高:
# \s*x\s* 正则匹配x前后任意数量的空格,直接拆分并转换为整数类型 df[['width', 'length', 'height']] = df['W_X_L_X_H'].str.split(r'\s*x\s*', expand=True).astype(int)
如果需要使用apply写法实现,参考如下代码:
import pandas as pd def split_dimension(dim_str): # 拆分后依次转整数 w, l, h = map(int, dim_str.split('x')) return pd.Series([w, l, h]) df[['width', 'length', 'height']] = df['W_X_L_X_H'].apply(split_dimension)
运行后即可得到三个独立的int类型列,可直接用于后续数值计算。
2. 保留WxLxH格式同时用于数值分析的可行性说明
不存在符合需求的实现方式:
整数类型为单值类型,无法同时存储三个独立数值且保留WxLxH的字符串格式。如果需要计算相关矩阵,宽、长、高本身是三个独立的特征,必须拆分为三个独立数值列分别参与计算,才能得到准确的相关性结果。
如果同时有展示和数值计算需求,可保留原有的W_X_L_X_H字符串列,同时新增三个数值列即可,两类字段互不影响。
内容的提问来源于stack exchange,提问作者Saurus
相关产品推荐
相关产品推荐

