Pandas拆分字符串为固定3列:处理含可变数量分隔值的Series
解决方案
你可以在拆分后通过reindex方法强制指定输出3列,缺失列自动填充空值:
import pandas as pd # 测试输入:只有前两种格式的字符串 s = pd.Series(['a', 'a - b']) res = s.str.split(' - ', expand=True).reindex(columns=[0, 1, 2], fill_value='') print(res)
输出结果:
0 1 2 0 a 1 a b
如果需要避免异常字符串拆分出超过3部分的情况,可以给split方法加n=2参数,最多拆分2次:
res = s.str.split(' - ', n=2, expand=True).reindex(columns=[0, 1, 2], fill_value='')
该方法对所有三种输入场景(只有单段、只有两段、三段格式共存)都能输出固定3列的结果。
内容的提问来源于stack exchange,提问作者Asish M.
相关产品推荐
相关产品推荐

