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

Python字符串转换求助:将长字符串拆分为多行垂直条目

解决方法

针对这个问题,核心是用正则表达式来拆分字符串——因为你要提取的片段都是以大写字母开头的,普通的split没法识别这种位置分隔。下面是具体步骤和代码:

假设你的DataFrame叫df,目标列名为target_col(替换成你实际的列名即可):

  1. 提取引号内的纯字符串
    如果原列格式是A='XXX'这类,先把引号里的内容单独提取出来:
df['raw_str'] = df['target_col'].str.extract(r"'(.*)'", expand=False)
  1. 按大写字母位置拆分字符串
    用正则的正向预查,在每个大写字母前拆分,这样就能得到A123、B4567这类单独片段:
# 拆分后生成多列,用stack把列转成行
split_items = df['raw_str'].str.split(r'(?=[A-Z])', expand=True).stack()
  1. 整理成单列格式
    把拆分后的结果转成你需要的每行一条目的格式,还能保留原索引关联(不需要的话可以去掉):
result_df = split_items.reset_index(level=1, drop=True).to_frame('new_col')

举个实际例子,原数据如果是:

target_col
A='A123B4567C9876D145789'

执行完代码后,result_df会变成:

new_col
A123
B4567
C9876
D145789

补充说明

  • pd.transpose()是用来转置行列的,和拆分字符串无关,自然解决不了问题;
  • 普通pd.str.split()没用是因为你没指定正确的拆分规则——这里需要匹配大写字母前的位置,而非固定分隔符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:08:16