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

如何在Pandas DataFrame中快速添加可动态分组的reading_set列?

实现方法

当然有高效的办法啦!而且完全支持动态设置每组的读数数量,下面给你两种简单易用的方案:

方法一:利用DataFrame索引直接计算

这是最简洁的方式,假设你想要每组的读数数量为group_size(比如你的需求里是3),直接通过索引的整数除法就能生成分组编号:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'reading': [12,13,23,9,10,67,23],
    'other': [23,15,72,23,15,99,68]
})

# 动态设置每组数量
group_size = 3
# 添加reading_set列
df['reading_set'] = df.index // group_size + 1

运行后得到的结果完全符合你的预期:

readingotherreading_set
012231
113151
223721
39232
410152
567992
623683

方法二:用Numpy生成序列计算

如果你的DataFrame索引不是连续的整数(比如有自定义索引),可以用numpy.arange生成连续序列来计算,兼容性更强:

import numpy as np

group_size = 3
df['reading_set'] = np.arange(len(df)) // group_size + 1

原理和方法一完全一致,只是用np.arange(len(df))生成了从0开始的连续整数序列,再做整数除法和加1操作。

特殊情况处理

如果你的DataFrame有非连续的索引,还可以先重置索引再计算:

df['reading_set'] = df.reset_index(drop=True).index // group_size + 1

这样不管原来的索引是什么样的,都能保证分组是按行的顺序来划分的。

这种方式的优势在于完全动态——你只需要修改group_size的值,就能轻松调整每组的读数数量,比如改成group_size=5就会每5条数据分为一组,非常灵活!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:32:33