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

如何动态拆分Pandas DataFrame?基于Stream列的Arts行分割

动态拆分包含指定标记行的DataFrame

实现思路

定位所有Stream列值为Arts的行的位置索引,基于这些索引动态提取目标区间的行,无需手动指定切片范围。

具体代码实现

import pandas as pd
data = {'Name': ['Ankit', 'Amit', 'Aishwarya',
                 'Priyanka','Kovacs','Tompos'],
        'Age': [21, 19, 20, 18, 20, 19],
        'Stream': ['Math', 'Commerce', 'Arts',
                   'Biology', 'Math', 'Arts'],
        'Percentage': [88, 92, 95, 70, 80, 83]}
df = pd.DataFrame(data, columns=['Name', 'Age', 'Stream', 'Percentage'])

# 1. 获取所有Stream为Arts的行的位置索引
arts_indices = df[df['Stream'] == 'Arts'].index.tolist()

# 2. 提取第一个Arts行之前的内容
first_part = df.iloc[0:arts_indices[0]]

# 3. 提取相邻两个Arts行之间的内容
middle_parts = []
for i in range(len(arts_indices)-1):
    start_idx = arts_indices[i] + 1
    end_idx = arts_indices[i+1]
    if start_idx < end_idx:
        middle_parts.append(df.iloc[start_idx:end_idx])

# 查看结果
print("第一个Arts行之前的DataFrame:")
print(first_part)
print("\n两个Arts行之间的DataFrame:")
print(middle_parts[0])

代码说明

  • arts_indices自动收集所有Stream为Arts的行的索引,不受数据集大小、索引类型影响
  • 遍历arts_indices动态计算相邻标记行的切片范围,适配任意数量的Arts标记行
  • 若数据集中存在多组间隔的Arts行,middle_parts会包含所有间隔区间的DataFrame

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 08:08:23