如何使用pandas创建分组列,实现每2行数据划分为同一组
pandas按每2行划分分组的实现方案
实现思路
通过生成从0开始的连续行序号,对2做整数除法,即可得到每2行对应同一个递增分组编号的效果,该方案也可扩展为任意N行一组的分组需求。
代码示例
1. 依赖导入
import pandas as pd import numpy as np
2. 构造示例原始数据(对应10行3列的df_A)
df_A = pd.DataFrame({ 'data1': range(10), 'data2': range(10, 20), 'data3': range(20, 30) })
3. 新增group分组列
通用实现(不受原DataFrame索引格式影响,推荐使用)
df_B = df_A.copy() # 生成和行数等长的连续序列,对2做整数除法得到分组值 df_B['group'] = np.arange(len(df_B)) // 2
简化实现(仅适用于原DataFrame是从0开始的连续整数索引场景)
df_B = df_A.copy() df_B['group'] = df_B.index // 2
效果说明
执行后得到的df_B中,第1、2行的group值为0,第3、4行的group值为1,后续每2行对应分组值依次递增,完全符合需求。
如果需要调整为每N行一组,只需将代码中// 2的2替换为对应N值即可。
内容的提问来源于stack exchange,提问作者patrick
相关产品推荐
相关产品推荐

