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

如何按重复起始行索引拆分多试验场景下的Pandas DataFrame

拆分索引重复重置的DataFrame为多个试验子表

核心思路是通过创建分组标识区分不同试验:每当遇到索引为0的行时标记新分组,再用groupby按分组拆分即可,完全无需手动查找结束索引。

具体实现步骤

  1. 生成分组标识:先判断每行索引是否为0得到布尔数组,再对数组做累积求和(cumsum()),每个试验会被分配唯一的分组ID。
  2. 按分组ID拆分DataFrame:用groupby分组后直接转成列表,每个元素就是对应试验的子DataFrame。

代码示例

import pandas as pd

# 假设你的原始DataFrame为df
# 第一步:创建分组标识列
df['trial_id'] = (df.index == 0).cumsum()

# 第二步:拆分并转换为子DataFrame列表
list_df_trials = [group for _, group in df.groupby('trial_id')]

# 可选:如果不需要保留分组标识列,可在拆分后删除
list_df_trials = [group.drop('trial_id', axis=1) for _, group in df.groupby('trial_id')]

方法优势

  • 彻底规避手动追踪结束索引的麻烦,解决了索引重复导致的定位问题。
  • 基于Pandas内置函数实现,比循环删除行的方式效率更高,处理大型CSV文件时性能优势明显。
  • 代码简洁逻辑清晰,后期维护成本低。

验证方式

可打印第一个子DataFrame确认结果:

print(list_df_trials[0])

输出内容会对应第一个试验从索引0到n的所有行,后续子DataFrame依次对应下一组试验数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:30:15