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

如何将分号分隔字符串按每10项分行生成Pandas DataFrame

解决方法

步骤1:分割字符串为元素列表

先把原始字符串按分号;拆分,得到包含所有元素的列表。如果原字符串首尾有多余分号,可选择性过滤空元素:

import pandas as pd

# 原始字符串
raw_str = ";2;613;12;1;Ajc hw EEE;13;.387639;1;EXP;13;2;128;12;1;NNN XX Ajc;13;.208966;1;SGX;13;.."

# 按分号分割成列表
elements = raw_str.split(';')
# 过滤空字符串(可选操作,根据需求决定是否保留空值)
elements = [elem for elem in elements if elem]

步骤2:按每10个元素分组

将分割后的列表按每10个元素为一组拆分,自动处理最后一组不足10个元素的情况:

chunk_size = 10
# 按固定大小切片生成多行数据
rows = [elements[i:i+chunk_size] for i in range(0, len(elements), chunk_size)]

步骤3:转换为Pandas DataFrame

直接将分组后的列表传入pd.DataFrame,自动生成结构化表格,也可手动指定列名:

# 生成DataFrame
df = pd.DataFrame(rows)

# 查看结果
print(df)

输出示例

运行后得到的DataFrame结构如下:

0    1   2  3            4   5         6  7   8   9
0    2  613  12  1  Ajc hw EEE  13  .387639  1  EXP  13
1    2  128  12  1  NNN XX Ajc  13  .208966  1  SGX  13
2  ..  NaN NaN NaN         NaN NaN      NaN NaN NaN NaN

额外处理:还原带分号的行格式

如果需要还原成你预期的带分号拼接的字符串格式,可通过以下代码实现:

# 每行元素用分号连接,开头补分号匹配预期格式
formatted_rows = [';' + ';'.join(row) + ';' for row in rows]
for row in formatted_rows:
    print(row)

输出结果:

;2;613;12;1;Ajc hw EEE;13;.387639;1;EXP;13;
;2;128;12;1;NNN XX Ajc;13;.208966;1;SGX;13;
;..;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:01:12