如何将元素为3位字符串的Pandas Series拆分为多列单个字符的列
实现方法
你可以通过以下几种简洁的方式实现需求,首先导入依赖并构造示例Series:
import pandas as pd # 示例Series,替换为你自己的Series即可 s = pd.Series(['abc', 'rgt', 'opx', 'cba'], name='Column')
方法1:字符串位置索引(推荐,性能最优)
直接用Pandas字符串访问器按位置取对应字符,逻辑直观性能高:
df = pd.DataFrame({ 'col1': s.str[0], 'col2': s.str[1], 'col3': s.str[2] })
方法2:正则提取
通过str.extract直接匹配三个字符并命名列,无需后续修改列名:
df = s.str.extract(r'(?P<col1>.)(?P<col2>.)(?P<col3>.)', expand=True)
方法3:列表转换
将每个字符串拆分为字符列表后直接构造DataFrame:
df = pd.DataFrame(s.apply(list).tolist(), columns=['col1', 'col2', 'col3'])
以上三种方法输出结果完全一致,均符合你的预期。
内容的提问来源于stack exchange,提问作者fiendfire28
相关产品推荐
相关产品推荐

