You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas中长度为3的字符串列拆分为3个字符列?

解决Pandas Series逐字符拆分并生成指定列的问题

针对你需要将字符串型Series逐字符拆分为3列、处理NaN行的需求,这里提供两种高效的实现方案:

方案一:使用str.extract(推荐,适合固定长度字符串)

利用正则表达式的(.)匹配单个字符,直接提取3个字符为3列,代码更简洁高效,尤其适配你94万行的大数据量:

import pandas as pd

# 假设你的Series对象名为s
# s = pd.read_csv(...)['score']  # 实际场景中读取数据的方式

# 提取每个字符为单独列,并重命名
df_result = s.str.extract('(.)(.)(.)')
df_result.columns = ['score_0', 'score_1', 'score_2']

# 将原Series中的NaN行转换为三个空值
df_result = df_result.fillna('')

方案二:使用str.split

通过设置空字符串为分隔符实现逐字符拆分,需额外处理拆分后产生的首尾空列:

import pandas as pd

# 逐字符拆分并展开为DataFrame,取中间3列(跳过首尾空串)
df_result = s.str.split('', expand=True).iloc[:, 1:4]
df_result.columns = ['score_0', 'score_1', 'score_2']

# 转换NaN行为空值
df_result = df_result.fillna('')

关键说明

  • str.extract('(.)(.)(.)'):每个(.)正则分组匹配一个字符,直接生成3列,无需处理多余空值,完美适配你固定3位字符的场景。
  • fillna(''):将原Series中NaN对应的行,统一替换为三个空字符串,满足你对空值行的要求。

内容的提问来源于stack exchange,提问作者Gooby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:37:14