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

如何在Pandas中每当指定列出现0值时拆分数据集

Pandas数据集拆分方案

你的拆分规则本质是每遇到A列值为0的行,就作为新分组的起始,可以按以下步骤实现:

实现代码

import pandas as pd

# 1. 构造原始数据集(实际使用时替换为读取你自己的数据即可)
df = pd.DataFrame({
    'A': [0,1,2,0,1,2,3,0,1],
    'B': [10.0,15.0,14.0,10.0,100.0,1.4,20.0,12.0,4.0]
})

# 2. 生成分组标识:每碰到A=0时,分组号自动+1
df['group_id'] = df['A'].eq(0).cumsum()

# 3. 拆分得到子数据集列表,每个元素对应一个你要的子表
split_dfs = [group_df.reset_index(drop=True) for _, group_df in df.groupby('group_id')]

# 可选:删除额外添加的group_id列,不影响原始数据结构
df.drop('group_id', axis=1, inplace=True)

使用方法

你可以直接通过索引取对应子表的B列,不会出现全部数据聚合的情况:

  • 取第一个子表的B列:split_dfs[0]['B']
  • 取第二个子表的B列:split_dfs[1]['B']
  • 取第三个子表的B列:split_dfs[2]['B']

打印split_dfs即可看到和你需求完全一致的拆分结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:15:02