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

DataFrame分组遇KeyError:如何将1000行数据分为10等组并提取指定组

解决DataFrame按固定行数分组及提取指定分组的问题

你用df.groupby(100)报错是因为groupby会把传入的单个数值当作列名处理,但你的DataFrame里没有名为100的列,因此触发KeyError。下面是两种可行的实现方案:

方案一:用分组键实现groupby操作(支持后续聚合等操作)

利用DataFrame的索引做整数除法,生成每组的标识键,以此完成分组:

# 生成从0开始的分组键(0-9对应10个分组)
group_keys = df.index // 100
# 如果需要分组编号从1开始,改成这行
# group_keys = (df.index // 100) + 1

# 按分组键执行分组
res = df.groupby(group_keys)

提取指定分组

要提取编号为[1,5,6,7]的分组,可使用get_group方法配合pd.concat合并结果:

import pandas as pd

# 提取多个分组并合并成一个DataFrame
selected_groups = pd.concat([res.get_group(num) for num in [1,5,6,7]])

方案二:直接拆分DataFrame为列表(适合仅拆分提取场景)

如果不需要groupby的聚合、遍历等功能,用numpy.array_split更直接,它会把DataFrame拆分成指定数量的均等子DataFrame列表:

import numpy as np

# 拆分为10个均等的DataFrame列表(列表索引从0开始)
df_groups = np.array_split(df, 10)

# 注意:列表索引从0开始,所以编号1对应索引0,5对应4,以此类推
selected_dfs = [df_groups[i-1] for i in [1,5,6,7]]
# 合并为单个DataFrame
selected_df = pd.concat(selected_dfs)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:23:15