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

如何用Pandas将DataFrame按每2行分组并添加分组类别列?

Pandas按固定行数分组并添加类别列的内置方法实现

问题描述

原始DataFrame数据如下:

TimeStamp,Value
 t1,akak
 t2,bb
 t3,vvv
 t5,ff
 t6,44
 t7,99
 t8,kfkkf
 t9,ff
 t10,oo

需求是按每2行一组拆分数据,为每组添加c1、c2……格式的分组类别列,最终得到如下结果:

TimeStamp,Value, class
 t1,akak,c1
 t2,bb,c1
 t3,vvv,c2
 t4,ff,c2
 t5,44,c3
 t6,99,c3
 t7,kfkkf,c4
 t8,ff,c4
 t9,oo,c5
 t10,oo,c5

已知可通过循环实现,想确认Pandas是否有内置方法完成该操作。

解决方案

可以直接用Pandas的内置向量化操作实现,无需循环,步骤如下:

1. 加载数据(若未加载)

假设数据已保存为CSV文件,加载时处理字段前的空格:

import pandas as pd

df = pd.read_csv("data.csv", skipinitialspace=True)

2. 生成分组类别列

利用整数除法生成连续分组编号,再格式化为cX的形式:

  • 如果DataFrame的索引是连续整数:
df['class'] = 'c' + (df.index // 2 + 1).astype(str)
  • 如果索引非连续(比如自定义索引),用numpy生成连续序列来计算:
import numpy as np

df['class'] = 'c' + (np.arange(len(df)) // 2 + 1).astype(str)

说明

这种方式依赖Pandas/Numpy的向量化运算,比循环效率高得多,尤其是处理大数据量时优势明显。执行后即可得到符合需求的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:45:32