如何为NumPy数组新增索引列实现每10行分组编号功能?
实现方案
直接操作NumPy数组(无需转DataFrame)
- 核心逻辑和你之前DataFrame的处理逻辑完全对齐,用
np.arange生成和行数匹配的0基序列替代DataFrame索引做分组计算,再将生成的组号列拼接到数组首列即可,代码如下:
import numpy as np # 假设你的原uint8数组变量名为arr rows_num = arr.shape[0] # 生成组号,同步转换为uint8类型和原数组格式统一 group_col = ((np.arange(rows_num) // 10) + 1).astype(np.uint8) # 把一维组号转成二维列向量后,拼接在原数组左侧 result_arr = np.hstack([group_col.reshape(-1, 1), arr])
若后续需要用DataFrame处理,可直接兼容你之前的写法
- 只需要先把NumPy数组转成DataFrame,再套用你原来的代码即可,示例:
import pandas as pd import numpy as np # arr为原uint8数组 df = pd.DataFrame(arr) df.insert(0, 'Data', (df.index // 10) + 1)
注:两种方案都和你原有逻辑一致,若数组行数不是10的整数倍,最后不足10行的内容会自动归为最后一组。如果你的数据行数超过2550,组号最大值会超过uint8的取值上限(0~255),可根据需要将
group_col的类型替换为np.uint16等更大取值范围的类型。
内容的提问来源于stack exchange,提问作者vdu16
相关产品推荐
相关产品推荐

