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

如何动态切分包含多组Rate的Pandas DataFrame?

解决Pandas DataFrame按连续Rate块动态分割的问题

你当前用的groupby('Rate')是按Rate的值来分组的,如果不同块里有相同的Rate值,会被合并到同一个组里,这和你要的「从每个Rate行开始,到下一个Rate行出现前结束」的连续块分割需求不符。

正确实现步骤

  • 先标记所有Rate行的位置(根据你的实际数据调整判断条件)
  • 用累积求和生成唯一的分组ID,每次遇到Rate行就开启新分组
  • 按分组ID进行groupby,提取每个子DataFrame

代码示例

假设你的Rate行是Rate列不为空的行(如果Rate行是某列等于特定值,比如df['Type'] == 'Rate',替换条件即可):

# 标记Rate行,根据实际数据调整判断逻辑
is_rate_row = df['Rate'].notna()
# 生成分组ID,每遇到一个Rate行,分组ID加1
group_ids = is_rate_row.cumsum()
# 按分组ID分割,得到子DataFrame列表
sub_dfs = [group for _, group in df.groupby(group_ids)]

说明

  • 若数据中有4个Rate行,group_ids会生成1-4的分组标识,最终得到4个符合要求的子DataFrame
  • 每个子DataFrame从对应Rate行开始,包含后续所有行直到下一个Rate行出现前

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:47:05