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

如何基于布尔列split拆分pandas DataFrame为bullish值统一的子集

你可以通过对split列累加生成分组ID的方式实现拆分,核心逻辑是cumsum遇到布尔值True时会自动加1,每次split触发(也就是bullish值变化)时组号就加1,自然就把连续相同bullish的行归为同一组,完整操作步骤如下:

  • 先补全最后一行的split值:你用shift(-1)对比当前行和下一行的值,会导致最后一行的split为NaN,需要主动赋值为True作为最后一组的结束标记
df.loc[df.index[-1], 'split'] = True
  • 生成分组ID,确保所有bullish值相同的连续行被分到同一组
df['group_id'] = df['split'].shift(fill_value=False).cumsum().astype(int)
  • 按分组ID拆分得到所有子集
# 得到存储所有子DataFrame的列表
sub_dfs = [group_df for _, group_df in df.groupby('group_id')]

# 如果不需要在子集中保留split、group_id字段,可以用下面的写法过滤
# sub_dfs = [group_df.drop(columns=['split', 'group_id']) for _, group_df in df.groupby('group_id')]

操作完成后sub_dfs中的每个元素都是满足要求的子集,所有行的bullish值统一为全True或全False。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:27:00