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

Pandas如何按字符数条件合并DataFrame行以达到指定长度范围

Pandas 文本行合并控长实现方案

核心思路是先给每行文本分配分组ID,累计文本长度接近1000时就开启新分组,最后按分组拼接文本即可,实现代码如下:

完整实现代码

import pandas as pd
from itertools import count

# 1. 构造示例数据(实际使用时替换为你自己的DataFrame即可)
df = pd.DataFrame({
    'column_text': [
        "this is line 1",
        "this is line 2",
        # 更多文本行
    ]
})

# 2. 生成分组ID
threshold = 1000  # 目标长度阈值
current_total_len = 0
group_counter = count(1)
group_ids = []

for text_len in df['column_text'].str.len():
    # 累加后超过阈值就开启新分组
    if current_total_len + text_len > threshold:
        next(group_counter)
        current_total_len = 0
    group_ids.append(next(group_counter) if current_total_len == 0 else group_ids[-1])
    current_total_len += text_len

df['group_id'] = group_ids

# 3. 按分组合并文本,分隔符可按需调整(换行符/空格等)
merged_df = df.groupby('group_id', as_index=False)['column_text'].apply('\n'.join)

# 可以查看合并后每段的长度验证效果
print(merged_df['column_text'].str.len())

可调选项与边界处理

  • 分隔符调整:如果不需要换行分隔不同行的文本,把'\n'.join替换为' '.join或者你需要的其他分隔符即可
  • 阈值调整:可以修改threshold参数适配你需要的长度范围
  • 超长行处理:如果存在单行文本本身长度就超过1100的情况,建议先对超长行做拆分,再走上述合并逻辑,避免最终段落超出长度范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:12:03