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

如何用Pandas按每4行一组拼接列值,不足4行也正常合并

解决方案

你当前写的硬编码切片iloc[:-7]仅能适配本次11行的输入场景,不具备通用性,可通过按行索引整数除法生成分组标签的逻辑实现通用的每N行拼接需求,修改后的代码如下:

import pandas as pd

# 示例输入
df_in = pd.DataFrame({'Column_IN': ['text 1','text 2','text 3','text 4','text 5','text 6','text 7','text 8','text 9','text 10','text 11']})

# 核心实现逻辑
df_out = df_in.groupby(df_in.index // 4)['Column_IN']\
              .agg('&'.join)\
              .reset_index(drop=True)\
              .to_frame(name='Column_OUT')

逻辑说明

  • df_in.index // 4:对行索引做向下取整的除法,索引03计算结果为0、47为1、8~10为2,自动生成每4行一组的分组标识,最后不足4行的内容也会自动归到同一组
  • groupby后对Column_IN列执行&字符拼接
  • reset_index(drop=True)清除分组生成的额外索引,to_frame将聚合后的Series转为DataFrame并指定列名为Column_OUT,输出结果完全符合预期。

如果你的原始DataFrame索引不是从0开始的连续整数,可先重置索引再执行分组,适配所有索引场景:

df_out = df_in.reset_index(drop=True)\
              .groupby(lambda x: x // 4)['Column_IN']\
              .agg('&'.join)\
              .reset_index(drop=True)\
              .to_frame(name='Column_OUT')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:06:00